L'esperienza C # si traduce bene in C ++? [chiuso]

13

Le mie lezioni di programmazione a scuola erano in C ++, ma alla fine ho lavorato a un lavoro con C # negli ultimi anni. Se esistesse una posizione che richiedesse un'esperienza di 1 o 2 anni in C ++, la mia esperienza in C # sarebbe degna di considerazione? Quanto efficace potrei essere in una tale posizione? Quindi devo iniziare come programmatore C ++ entry-level per ottenere l'esperienza necessaria?

    
posta BigOmega 04.10.2011 - 00:42
fonte

7 risposte

13

Il problema qui è che C ++ e C # sono, fondamentalmente, lingue estremamente diverse con approcci diversi a molti problemi. È facile etichettarli come "Un linguaggio OO", ma il semplice fatto è che molti idi di C # sono considerati un codice molto cattivo in C ++ (e viceversa).

Se conosci davvero le differenze e quali sono gli idiomi in C ++, allora non vedo alcun motivo per cui non dovrebbe andare bene.

    
risposta data 04.10.2011 - 01:10
fonte
5

Ero nella stessa barca circa 2 anni fa. La tua esperienza c # probabilmente non varrebbe tanto per un lavoro c ++ come c ++ è per un lavoro c #. Detto questo, se sai come funziona c # (pochissimi programmatori c # in realtà lo fanno), e hai imparato bene il tuo c ++ allora il c ++ non sarà il problema. Quale sarà il problema è il modo in cui ti sei abituato a certi schemi di progettazione che saranno troppo alti per c ++.

Ad esempio, passando dal bel modello di accesso ai dati ADO.NET all'utilizzo di cppcon per l'accesso mysql, System.Collections.Generic all'utilizzo di stl, ereditarietà multipla, garbage collection per ripulire la memoria in distruttori e così via .. tutti tendono ad essere transizioni difficili. C ++ non è il problema, imparare le librerie, i modelli di progettazione e come usarli è la sfida. La maggior parte dei reclutatori non se ne rende conto. Se si può fare una progettazione di base e si possono usare le effettive funzionalità comunemente utilizzate di c ++, si dovrebbe andare bene nell'intervista.

Tuttavia, pronto per il lavoro è una storia diversa. È una sfida divertente, spero che tutto vada bene.

    
risposta data 04.10.2011 - 03:41
fonte
3

Non posso parlare per tutti i datori di lavoro, ma personalmente considero la programmazione come l'abilità e le specificità linguistiche che è piacevole avere. È ancora possibile essere assunti in un altro lavoro di programmazione che non è la tua principale abilità.

Avendo detto che è molto improbabile che assumerei qualcuno che non aveva assolutamente esperienza nella lingua per la quale li sto assumendo. Trascorri qualche fine settimana imparando e hai un paio di progetti per animali da compagnia per rafforzare il tuo CV. Anche i più piccoli dimostrano che sei capace di imparare e appassionare.

    
risposta data 04.10.2011 - 00:54
fonte
3

Sei esattamente nella stessa situazione in cui mi trovavo 4 anni fa.

Ho fatto un po 'di C ++ durante i miei studi, ma l'ho odiato. Ho fatto un sacco di web dev quando potevo nel tempo libero e ho trovato un lavoro in quel campo.

Quando mi sono trasferito ho fatto domanda per un lavoro in C ++ che richiedesse 2 anni di esperienza C ++ come requisito. Bene, ho rinfrescato i miei ricordi del C ++ prima dell'intervista e quando è arrivato il momento dei test sono riuscito a farcela con alcune cose che non ero così sicuro di fare bene.

Ma la maggior parte dell'intervista riguardava la risoluzione di problemi e soluzioni creative e il C ++ terminò di essere solo un piccolo fattore.

Quindi le possibilità dipendono davvero dal datore di lavoro e dalle posizioni che hanno.

Se stai attraversando un'agenzia di reclutamento ti verrà "probabilmente" detto che il tuo profilo non corrisponde. Ma con un vero datore di lavoro le tue possibilità sono molto migliori in quanto sanno davvero di cosa hanno bisogno.

    
risposta data 04.10.2011 - 01:05
fonte
1

Dipende. Se puoi rispondere ad alcune domande di interviste di base su puntatori e simili, allora dovresti stare bene.

È anche utile se puoi elencare le differenze tra i modelli C ++ e i generici .NET.

Oltre a questo, è facile rimanere al passo con il resto mentre vai avanti.

    
risposta data 04.10.2011 - 00:49
fonte
1

Sì. Potrebbe non essere rilevante quanto l'esperienza C ++, ma è buono.

I buoni datori di lavoro saranno interessati a come pensi , più di quanti anni di una lingua specifica hai.

Una posizione C ++ entry-level va bene: puoi imparare velocemente e fare un ottimo lavoro. Una buona compagnia ti darà molte opportunità per crescere. Altrimenti puoi andare da qualche altra parte e avere esperienza sia in C # che in C ++.

    
risposta data 04.10.2011 - 05:21
fonte
0

Dipende davvero dalla natura dell'attività a cui ti stai candidando. Se cercano qualcuno con buone capacità di programmazione e architettura basate su OO, C # è probabilmente buono come il prossimo.

Se sono orgogliosi della velocità / reattività del loro software, allora avrai bisogno di conoscere i tuoi algoritmi poiché questo è più importante delle micro-ottimizzazioni - Hash Tables rispetto alla ricerca lineare, ecc. C # è ancora pertinente qui, ma tu Dovrei dimostrare la comprensione delle caratteristiche delle prestazioni - non tutti sanno di ngen.exe, per esempio.

Se si trovano in ambienti embedded / mobile e / o non-garbage collection, è davvero necessario sapere come gestire efficacemente la memoria. Gli indicatori intelligenti, come sottolineato da @DeadMG, sono fondamentali qui, ma lo è anche la comprensione del profilo di allocazione della memoria. I programmatori di giochi spesso pre-allocano grandi matrici di oggetti e li riciclano per conoscere in anticipo i requisiti di memoria e ridurre le incognite per ogni fotogramma. Questa è anche la tecnica utilizzata nelle tabelle a scorrimento di TableViews in iOS.

Se c'è un lavoro di integrazione, è probabile che tu abbia bisogno di competenze a livello C in termini di dati di marshalling tra lingue (come P / Invoke) ma anche comprensione a livello di byte di come queste strutture di dati possano essere utilizzate, che non è nella mia esperienza pratica comune in C #.

    
risposta data 04.10.2011 - 11:25
fonte

Leggi altre domande sui tag