Novità di Programmazione / obiettivo c [chiuso]

-1

Recentemente ho iniziato a lavorare su alcune app per iPhone, partendo da una base in cui praticamente non avevo esperienza di programmazione (ho studiato matematica e avevo pochissimi moduli di programmazione)

Mi sono dedicato a Beginning Mac Programming: sviluppo con Objective-C e Cocoa e l'ho trovato utile, mentre mi dava la sensazione che dovessi affrontare rapidamente la mancanza di una vera base di programmazione.

Per il prossimo futuro il mio lavoro riguarderà lo sviluppo di app per iPhone - Voglio avere una vera comprensione dell'obiettivo-c prima che le cose diventino più pressanti nei prossimi mesi.

La mia migliore scommessa per studiare c prima di tutto, prima di preoccuparmi dei punti più fini dell'obiettivo-c?

Se è così, qualcuno ha avuto esperienza nell'insegnare se stesso attraverso una risorsa online? Sarebbe bello se qualcuno potesse consigliare un sito web con cui auto-insegnare c.

Scusa se questo copre un terreno vecchio ma nulla nelle domande simili ha risposto alla mia domanda.

Qualsiasi aiuto è molto apprezzato:)

    
posta Octave1 06.01.2012 - 21:57
fonte

5 risposte

4

Posso consigliare K & R.

È uno standard di programmazione C. Il libro ha molti esercizi e la maggior parte degli esercizi sono risolti sul web in modo da poter ottenere aiuto quando necessario. Hanno anche un libro delle risposte (venduto separatamente)

Il linguaggio di programmazione C (Brian W. Kernighan e Dennis M. Ritchie) ISBN 0.131.103,628 mila

Questo ti insegnerà le cose di livello inferiore, quindi potrai apprezzare la comodità di alto livello offerta dall'SDK di iOS.

Per migliorare le tue abilità oggettive in generale, attenersi ai principi di base. Classi, gestione della memoria e leggere la guida alla programmazione di ViewController.

Ecco un piano passo passo per te.
1) Crea un'app che trovi utile e leggermente impegnativa.
2) Vai al passaggio 1)

In poco tempo ti renderai conto di quali risorse hai bisogno per migliorare (sia che si tratti di uno sfondo di programmazione C più solido, una comprensione più ampia delle classi disponibili all'interno del sdk iOS, o una conoscenza più approfondita di Objective-C e programmazione orientata agli oggetti)

    
risposta data 06.01.2012 - 22:05
fonte
2

La conoscenza della programmazione è incredibilmente versatile. Se sai come programmare, allora prendere in mano una lingua (come l'obiettivo-c) è facile come imparare la sintassi - che spesso puoi trovare in pochi secondi con un buon motore di ricerca.

Non lasciarti coinvolgere da quale lingua stai imparando, ma quali informazioni stai imparando. Dopo essermi diplomato (?) Con enfasi sulla matematica, mi sentirei abbastanza sicuro nel dire che hai una buona padronanza della logica, quindi suppongo che tu non abbia problemi con la tua ramificazione standard (se, altrimenti, funzioni) e il ciclo (mentre, per, per-ciascuno).

Se questo è il caso, allora vorrai avere una buona conoscenza degli altri concetti più importanti (non importante perché li userai più spesso, ma perché essere in grado di cogliere questi altri concetti ti aiuta in qualsiasi altro posto) . Queste sono alcune cose che mi hanno aiutato:

Concetti / Algoritmi

  • Puntatori
  • ricorsione
  • Attraversamento dell'albero
  • Ordinamento
  • Generazione del numero di primi
  • Chiusure
  • Monads (non ho ancora pensato a questo)

L'ordinamento

  • Quicksort
  • Ordinamento a bolle

Strutture dati

  • Array
  • Dizionari
  • Liste collegate (singole e doppie)
  • Hashtables / dizionario
  • Imposta
  • Alberi (binari, bilanciati)
  • Array circolari
  • grafici

Il problema con questi non è dire "Oh sì, posso scrivere X feature" ma che ti insegnano come pensare ai problemi che emergono nella programmazione. Finora non ho scritto una sola lista collegata, hashmap o attraversamento di grafici. Diamine, non ho usato affatto puntatori o iteratori (almeno non la varietà C / C ++). Non penso nemmeno di aver usato la ricorsione. Ho scontato che sono fuori da scuola da meno di un anno ... ma attribuisco definitivamente le mie attuali capacità e successi alle basi che ho messo a scuola.

    
risposta data 06.01.2012 - 22:21
fonte
1

Quando dici che devi rafforzare le tue basi di programmazione, penso alle cose agonostiche del linguaggio come le abilità di base di logica / ragionamento / algoritmo (essere in grado di prendere un problema e dividerlo in passaggi logici in modo da poter camminare sul computer eseguendo il compiti) e concetti di programmazione fondamentali come il controllo del flusso, il valore rispetto ai tipi di riferimento (heap vs stack), ecc. Dal momento che sembra che lavorerai principalmente con Obj-C, aggiungerei anche concetti OOP di base (che cos'è un oggetto? ereditarietà, polimorfismo, ecc ...)

Qualsiasi linguaggio (con l'avvertenza che ovviamente devi usare una lingua OOP per praticare i concetti OOP) ti aiuterà a imparare quanto sopra. Inoltre, ci sono molte attività correlate alla programmazione che mi piace fare per lavorare sulla mia logica: imparare di più sulla matematica, risolvere rompicapi e rompicapi e imparare come pensare e risolvere i problemi in modo efficiente.

Ora, se hai bisogno di imparare l'Objective-C, non c'è motivo di non studiarlo esclusivamente per un po '. Ad un certo punto, sarà sicuramente nel tuo migliore interesse espandersi e studiare un certo numero di lingue - il mio percorso mi ha portato dappertutto. Obj-C, C, C ++. C #, Java, PHP, ecc ...). Più lingue studio, più riesco a vedere e ad apprezzare i pro / contro di ognuno di essi e a capire perché utilizzeresti l'uno sull'altro per un particolare progetto.

Tuttavia, dal momento che dici di programmare iOS, inizia con quello. Raccogli libri che si concentrano su progetti iPhone. Scopri le API e i metodi disponibili per te. Ci sono un sacco di grandi libri, blog, tutorial, ecc ... che si concentrano sulle app iOS e sui loro particolari vincoli (per esempio, nessun garbage collection significa che devi essere molto consapevole del rilascio di oggetti dopo aver finito con loro, e comprensione conserva conta).

Inizia con ciò che devi sapere e lasciati guidare dalla tua curiosità.

    
risposta data 06.01.2012 - 22:32
fonte
0

Inizia con il materiale oggettivo-C in primo luogo - imparerai un po 'di C nel farlo, ma per l'iPhone probabilmente vorresti solo fare tutto alla maniera di Cocoa. Imparare la vecchia scuola C non sarà molto utile per questo, e probabilmente sarà solo confusionario.

I concetti di base saranno simili in entrambe le lingue, ma non ha senso imparare due modi di fare le cose subito, mettiti comodo in una, quindi esplora le alternative.

    
risposta data 07.01.2012 - 02:59
fonte
0

Anch'io provengo da un background simile, dopo aver completato il mio Btech (BE) in Mechanical ci sono voluti un po 'di tempo e ho cercato per me di entrare nel mondo di programmazione (Computer).

Penso che leggere l'obiettivo C rispetto a C, perché c'è una differenza nel modo in cui si pensa in C e nell'obiettivo c e Secondo la mia opinione se si capisce Obettivo C, sarebbe più facile per te passare attraverso i concetti del linguaggio C .

A parte questo: c'è un costante bisogno di apprendimento e potresti dover connettere quei punti. Essere parte di un gruppo in cui è possibile discutere qualsiasi cosa (StackExchange per es.)

  1. Fai un sacco di Google / Stack Exchange / Stack Overflow per qualsiasi domanda curiosa. C'è molto contenuto disponibile online.
  2. Comprendere il concetto di memoria in un sistema operativo. RAM VS Hard Disk Memory. Comprendere come un codice sorgente (in qualsiasi lingua in generale) viene convertito in un eseguibile. Non entrare nei dettagli, ma avere un'idea di cosa sta succedendo all'interno della scatola.
  3. Comprendi l'obiettivo C in primo luogo, dai importanza ai concetti quindi alla sintassi. Ma sii familiare anche con la sintassi di una lingua. Quindi sposta il framework Cocoa, utilizzando il quale potresti eseguire le app iphone / ipad. Per questo hai Apple Programing Guide, che copre tutto in dettaglio e in profondità.
  4. Comprendi e leggi le strutture dati, capisci di cosa si tratta e perché ne abbiamo bisogno, prova a utilizzare le tue conoscenze in strutture di dati obiettive e pratiche. Per esempio. prova a creare un elenco collegato utilizzando l'obiettivo c. Prova a scrivere la tua implementazione di NSMutableArray e NSArray.
  5. Più tardi leggi gli algoritmi e capisci i concetti lì.
  6. Prova a risolvere i puzzle (usa la programmazione se necessario). Fai il bravo con Logic e ringrazia il tuo cervello per essere sempre lì per te !!!
risposta data 08.07.2013 - 23:14
fonte

Leggi altre domande sui tag