I passaggi richiesti per iniziare la programmazione in C ++ per sviluppare applicazioni native

1

Ho a che fare con C # .Net per quasi un anno. Ho molta esperienza (devo la maggior parte a ragazzi di StackOverflow).

Ora sto pensando di iniziare a lavorare anche con C ++. Soprattutto perché vorrei poter scrivere codici in grado di generare applicazioni che non sono dipendenti da .Net, in modo che possano essere eseguiti nella maggior parte degli ambienti avendo in mente anche la multipiattaforma. Anche se devo confessare, scrivere codice in .Net con C # e Visual Studio non può essere più facile al giorno d'oggi.

Tra le altre mie ragioni, posso nominare, dal momento che sto studiando ingegneria elettrica, chissà se in seguito dovrò scrivere driver per hardware!

Le mie domande sono: 1- Ho ragione con l'idea di imparare il C ++, voglio dire è che si aggiunge al mio valore se dico che ho intenzione di lavorare come sviluppatore in seguito? 2- Quali strumenti avrò bisogno per iniziare a programmare in C ++ nativo che è forse compilatori e IDE

    
posta Sean87 06.01.2012 - 13:15
fonte

5 risposte

2

Alcuni avvisi per evitare alcune "deviazioni" comuni:

1) C ++ e C # sembrano molto simili, ma la loro similitudine termina proprio lì (nell'aspetto).

2) "L'applicazione nativa", sia su Windows che su Linux, non è C ++, ma C poiché C è la lingua nativa per entrambe le API del kernel del sistema operativo. In questo senso, tutte le librerie C ++ che interfacciano il sistema operativo sono solo un livello di astrazione lontano

3) Le librerie C # (in particolare .Net) sono strongmente basate su una gerarchia OOP. In C ++, OOP è solo uno dei possibili paradigmi di programmazione, e non sempre il più efficiente, ma ...

4) C ++ ha avuto un lungo processo di standardizzazione durato decenni. Durante questo processo è cambiato molto sia come lingua che come libreria standard. Sfortunatamente molti framework e librerie sviluppati per supportare l'interfaccia nativa del sistema operativo in cui sono scritti decenni fa, e hanno ancora un lungo backlog non più standard. Ad oggi non esiste una libreria GUI C ++ 11 che sia realmente ispirata dallo stesso C ++ 11, piuttosto che rendere il codice pre-C ++ 11 compilabile in C ++ 11.

5) Di conseguenza, imparando lo "stato dell'arte" C ++ ti renderà efficiente ed efficiente nell'implementare i tuoi algoritmi e le tue classi, ma ti riconduce a C ovunque tu abbia bisogno di interagire con l'API nativa o ...

6) Imparare uno dei framework C ++ esistenti che astraggono il concetto GUI (Like MFC) a volte anche su piattaforme multiple (come GTK, WxWidget ecc.), non ti renderà un "buon programmatore C ++" dato che ti porterà torna a C ++ 03 o anche C ++ 98.

Tutto ciò detto, hai due percorsi:

a) Impara un framework e attraverso questo impara il C ++ (o ... quella parte di C ++ usata per sostenere il framework stesso). Ciò ti renderà produttivamente veloce, ma meno efficiente nella strutturazione del codice e nel corretto riutilizzo. (usi "tecniche passate" e "trucchi e suggerimenti specifici per la struttura")

b) Impara C ++ per quello che è (inizia con il libro che insegna C ++ insieme alla sua libreria: evita tutti i libri che parlano di puntatori e array prima di vettori e contenitori), e una volta che hai compreso la pratica corretta, sviluppa te stesso l'API wrapper (non è così difficile) per sostenere le tue app, ma sii pronto a sostituirle non appena arriverà un nuovo framework per il sistema C ++ 11.

    
risposta data 06.01.2012 - 21:39
fonte
8

Non ho mai usato l'ambiente Visual C o Windows, quindi la mia risposta sarà di parte. Sento che se vuoi imparare il c ++, dovresti farlo su Linux. Poiché Linux è una piattaforma open source e ampiamente utilizzata in ambienti eterogenei come server, mobile, desktop, troverai molto più supporto quando ti imbatti in problemi piuttosto che in Windows.

Quindi, farei molto meglio se inizi con un c ++ semplice rispetto a Visual C ++ come c ++ standard può essere eseguito su più dispositivi. Inoltre è un buon momento per passare al C ++ in quanto il nuovo standard C ++ 0x introduce molte più funzionalità. Ecco cosa ha da dire il creatore di C ++ sul nuovo standard

"C ++ 11 si sente come una nuova lingua." - Bjarne Stroustrup

Infine, il C ++ non è un linguaggio piccolo e richiederà almeno un anno di apprendimento continuo e programmazione per familiarizzarsi con esso. Quindi prima inizi, meglio è. Inoltre, se decidi di passare all'ambiente Linux, prima o poi sentirai l'impulso di imparare C, che sembra simile a C ++ sulla pelle, ma è una bestia molto diversa sotto la pelle.

    
risposta data 06.01.2012 - 14:46
fonte
4

Imparare quasi tutto ciò che è nuovo aggiunge valore. Se hai un tempo libero per farlo - fallo, senza mettere in discussione i motivi.

Per quanto riguarda questo specifico caso, il C ++ è un linguaggio piuttosto interessante, le sue numerose insidie e le sue decisioni di progettazione sbagliate hanno contribuito maggiormente al design delle lingue moderne rispetto a qualsiasi altra lingua. Imparare dagli errori è sempre una buona idea. Ma non dimenticare di prestare abbastanza attenzione anche alle altre lingue.

    
risposta data 06.01.2012 - 14:04
fonte
2

per alcune delle nozioni di base puoi usare Visual Studio per imparare c ++, ma visual c ++ è diverso dal normale c ++, quindi potresti voler dirigerti verso qualcosa di diverso dopo un po ', ma tutte le cose di base sono le stesse in visuale c ++ e se ti senti a tuo agio con lo studio visivo è meno da superare nell'apprendimento di una lingua.

    
risposta data 06.01.2012 - 14:30
fonte
2

Imparare qualcosa di nuovo è sempre positivo, ma alcune cose potrebbero essere più utili da imparare rispetto ad altre. Dal momento che si sospetta che in futuro si stia lavorando ai driver dei dispositivi, allora è proprio quello che si dovrebbe fare. Per la maggior parte, impara ciò che ti interessa.

    
risposta data 06.01.2012 - 17:58
fonte

Leggi altre domande sui tag