Cosa dovrebbe aspettarsi uno sviluppatore C ++ per un colloquio presso un'azienda Rails? [chiuso]

6

Ho lavorato su applicazioni backend in C ++ per oltre 5 anni. Sto facendo TDD, usando STL e Boost ecc. Ho deciso che ho bisogno di un cambiamento e circa un anno fa ho iniziato a imparare Ruby, e pochi mesi fa ho iniziato a giocare con Rails, HTML5 e CSS. Non so ancora JavaScript, mi sto concentrando su Rails ora.

Che cosa posso aspettarmi in un'intervista per un lavoro di sviluppo del backend di Ruby on Rails? Come posso presentarmi per sfruttare la mia esperienza C ++? Ora sono a un livello senior e non posso iniziare dalla posizione interna.

Mi considero davvero bravo in C ++, conosco anche alcuni Scheme, alcuni Python e un bel po 'di Ruby. Avrò una piccola app Rails pronta e 1 Gem semplice pubblicata prima di iniziare l'applicazione. Più un bel po 'di progetti personali in C ++. Ho una laurea in Ingegneria Elettrica e sto completando la laurea specialistica in CS nel giugno 2011.

    
posta Nazgob 20.02.2011 - 14:54
fonte

9 risposte

7

Se ti stavo intervistando per un lavoro professionale in una nuova lingua, mi concentrerei su un paio di cose:

  1. Quanto è ampia la tua esperienza? Quali lingue hai usato oltre al C ++?

  2. Quanto conosci il C ++? Se hai programmato in C ++ per più di un anno, mi aspetterei una conoscenza piuttosto solida del C ++. Questo mi direbbe se saresti motivato a imparare veramente Ruby e la programmazione web.

Ho anche intervistato per una posizione Ruby on Rails senza esperienza in Ruby o nello sviluppo web. Per ottenere la posizione, mi sono concentrato sull'ampia varietà di lingue che conoscevo e sui diversi domini in cui ero stato produttivo. Ho ottenuto un ottimo lavoro, ho trascorso un weekend a imparare le basi di Ruby e Rails e ho continuato a leggere. Dopo un mese ho trovato quello di otto sviluppatori sul progetto, ero l'esperto di Ruby, Rails e Javascript. Gli altri avevano appreso il minimo indispensabile e stavano essenzialmente traducendo una soluzione J2EE in una bruttissima applicazione Rails.

    
risposta data 20.02.2011 - 21:20
fonte
3

C'è un famoso articolo di Joel Spolsky che dice che quello che sta cercando in un colloquio di lavoro sono persone che sono "Smart and Get Things Done" - e l'intervistatore può verificare sia chiedendoti della tua passata esperienza in altre tecnologie.

L'articolo stesso contiene dettagli più specifici.

    
risposta data 23.02.2011 - 10:31
fonte
1

Penso che dovresti dimostrare di avere una buona conoscenza dello sviluppo web. Dato il tuo background in C ++, sei probabilmente bravo a sviluppare applicazioni desktop o server. Ma per lo sviluppo del web dovresti capire cose come HTML, Javascript e altri concetti di sviluppo web come sanificare l'input dell'utente e l'interazione generale dell'utente.

Non penso che avrai problemi a capire come programmare in Ruby, ma essere in grado di scrivere una buona applicazione web è diverso dalla scrittura di una buona applicazione di sistema.

    
risposta data 22.02.2011 - 19:38
fonte
1

In primo luogo sembra che tu sia più vicino di quanto pensi. La solida esperienza del rubino insieme al tuo aggiornamento è un buon inizio per presentarti.

Ricorda che è meglio presentare abilità ed esperienza piuttosto che padroneggiare un'abilità specifica.

Skills can be learnt by those with ability.

L'uso di C ++ nell'ambiente che hai affermato ti dà probabilmente un vantaggio poiché avrai una buona comprensione di un livello inferiore rispetto a Ruby. TDD, STL e Boost sono tutte cose buone da menzionare.

L'abilità è preferibile all'esperienza o alle abilità. Questo è ciò che devi trasmettere.

    
risposta data 24.02.2011 - 00:44
fonte
1

Devi solo dimostrare la tua capacità di apprendere

Come altri hanno giustamente detto, ci sono un gran numero di programmatori mediocri là fuori che non avanzano mai oltre la fase "Principiante avanzato" (vedi Modello Dreyfus per ulteriori informazioni).

La tua paura sembra essere che se non sei un esperto di Ruby e Rails allora sarai pagato come un novizio. Non è questo il caso, almeno non in una software house sensata. Supponendo che la società sia ragionevole, prenderanno in considerazione le tue abilità di programmazione esistenti e vorranno sapere con quale rapidità puoi arrivare a velocità nel loro ambiente. Se ti stanno prendendo in considerazione per il colloquio, hanno già stabilito che sei potenzialmente utile per loro.

Quindi quello che devi fare è dimostrare che puoi prendere in mano un nuovo framework in breve tempo. Hai già queste competenze perché hai acquisito STL, Boost e una serie di altre API e framework difficili nel corso del tuo lavoro in C ++. Pensare che avresti problemi con personaggi come Ruby e Rails mi fa sorridere.

Dato che stai mirando a lavorare sul lato server delle applicazioni web, ti suggerirei di acquisire familiarità con quanto segue (potresti già saperlo, ma meglio essere sicuro):

  • Informazioni su HTTP (richiesta, risposta, codici, ecc.)
  • Scopri le migrazioni di Rails, ActiveRecord, richieste di instradamento
  • Scopri le differenze tra Rails 2 e Rails 3
  • Dimostra di generare un'app da Scaffold e di spostarti intorno ad essa
  • Dimostrare la comprensione dello stile di programmazione funzionale fondamentale e della digitazione dinamica (runtime injection e così via)

In breve, non preoccuparti, ma applica te stesso al compito.

    
risposta data 24.02.2011 - 10:11
fonte
0

Non mi concentrerei sul provare che sei una sorta di guru dei Ruby. Hanno letto il tuo curriculum e ovviamente credono che tu sia competente a svolgere il lavoro (da qui l'intervista).

Nel peggiore dei casi, potrebbero farti una domanda per cercare di ingannarti. Penso che C ++ supporti l'ereditarietà multipla e Ruby supporta solo l'ereditarietà singola. Forse qualche scenario in cui ciò potrebbe essere un fattore. Questo è l'unico modo in cui potrei pensare di farti inciampare.

Esercitati a scrivere il codice Ruby su una lavagna. Assicurati di capire le cose semplici su JavaScript (come se fosse un linguaggio lato client che viene eseguito nel browser). Passa attraverso un tutorial di convalida del modulo HTML per JavaScript se non hai davvero fatto nulla in JavaScript.

Buona fortuna!

    
risposta data 22.02.2011 - 19:19
fonte
0

Che cosa puoi aspettarti da un colloquio di lavoro con ruby on rails?

Ovviamente dipende dalla compagnia e dal progetto. Probabilmente dovresti essere esperto in ActiveRecord - uno dei gioielli della corona delle rotaie. Scoprite anche i pattern MVC e il modo in cui le rotaie li usano, vale a dire modelli, viste e controller. Impara un po 'di radici di rotaie in cima o quella e alcune strategie di schieramento (Capistrano) e potresti sopravvivere!

Sarai simile a un dev ruby / rails pro se inserisci anche mac (jk)

    
risposta data 25.02.2011 - 05:30
fonte
0

Se assumo uno sviluppatore di rotaie e lui / lei è nuovo alle guide, mi piacerebbe sapere la sua conoscenza su:

  • MVC
  • esperienza del progetto
  • quali sono le gemme popolari
  • sentito parlare di railscast?
  • come funziona il percorso
  • problemi di sicurezza
  • opzioni di implementazione

Nel caso specifico dell'OP, forse qualche domanda aggiuntiva su:

  • lavoro precedente su c ++
  • reputazione su stackoverflow
  • blog su c ++?

solo il mio 0.02

    
risposta data 25.02.2011 - 10:27
fonte
0

Assicurati di aver raccolto alcune delle tecnologie di test su Ruby e Rails: RSpec e Cucumber sono buone scelte. Se hai fatto TDD con C ++ è un buon inizio.

Impara almeno le basi di HTTP e CSS. Non è necessario essere un guru completo, ma dovrai essere in grado di apportare piccole modifiche. W3Schools è un ottimo sito; richiede meno di un pomeriggio.

Per sfruttare al meglio la tua esperienza esistente, concentrati su quegli aspetti dello sviluppo del software che in realtà non riguardano la programmazione. Come hai interagito con gli altri membri del team? Hai istruito qualcuno? Collaborato con i tester per correggere un bug? Aiutato un project manager a promuovere il lavoro che stai facendo? Negoziato con l'infrastruttura per una nuova macchina? Queste interazioni sono alcune delle cose più difficili con cui un programmatore può essere coinvolto - dal momento che gli esseri umani non si comportano sempre in modo razionale - e la tua esperienza con quella sarà più preziosa della semplice conoscenza di una lingua.

    
risposta data 26.02.2011 - 12:43
fonte

Leggi altre domande sui tag