Corsi di programmazione web e mobile online
Risultati da 1 a 7 di 7

Discussione: Come gestire "filosoficamente" la curva di apprendimento

  1. #1
    Junior Member
    Data Registrazione
    Nov 2011
    Messaggi
    28

    Question Come gestire "filosoficamente" la curva di apprendimento

    Corso online di programmazione android e java
    Cari sviluppatori,
    ahimè sono passati 15 anni dall'ultima volta che ho scritto un pezzo di codice, e ora tornando mi trovo davvero in difficoltà.
    In un ambiente di programmazione procedural,e è vero, si andava come le tartarughe, dovendo sviluppare tutto da zero o quasi ogni volta, ma dal momneto che le fondamenta le buttavi tu sapevi anche su cosa appoggiavi l'edificio.

    L'impatto con l'Object Oriented è stato uno shock, sono un paio di settimane che studio e vorrei conforto sull'idea che mi sono fatto e su come procedere oltre.
    Per ora infatti sogno quando potevo semplicemente dire di stampare una stringa o un numero, o una operazione, o il risultato di un ciclo iterativo a video, specificando dove, in cinque righe di codice.

    Per fare una stampa a video con X-code ho sudato freddo e dovuto gestire tre file diversi (.h.m.xib) vari oggetti, classi, etc...

    Ma naturalmente i vantaggi di un sistema OO si vedranno al crescere delle esigenze, ho fiducia in questa (altrimenti l'idea sarebbe morta sul nascerem e invece è lo standard de facto)..

    Dopo vari tutorial in cui vedevo sempre comaprire qualcosa di non spiegato prima ho affrontato la documentazione ufficiale apple e finalmente ho trovato una spiegazione organica.

    E se da una parte sono rallegrato, dall'altro sono scoraggiato per la mole di cose da padroneggiare.

    E' vero, per stampare a video qualcosa posso "ordinare" ad un oggetto UILabel di farlo, e lui lo sa fare perchè qualcuno ha scritto il codice per farlo.
    Non mi frega come lo fa e amen.
    Ma per farglielo fare devo chiamare il metodo.
    Con la sintassi corretta.
    Ah e prima devo aver dichiarato l'oggetto.
    Ah e poi definito le sue property.
    Mumble......
    E se voglio fargli fare qualcos'altro... ah beh bisogna usare un altro metodo....
    Ah... e fammi vedere questi metodi..
    Ah... si ereditano di supercalsse in superclasse...
    LE classi sono 200.
    Solo NSObject ha un centinaio di metodi.
    200*100=20.000
    Sto deliberatamente esageratamente....
    Ma come si fa a memorizzare 20.000 sintassi?!?!?!?!?!?!?!
    Ah e tutto questo naturalmente prescinde dalle implementazioni, che poggiano sul C. Almeno quello un poco lo conosco, e le posso scrivere...

    Allora, mettetevi nei miei panni.

    Volendo scrivere una semplice app che pesca random dei dati stringa da un database, e li infila in una tabella a video alla pressione di un pulsante:

    quali classi e metodi comincereste a studiare?

    Lo so che bisognerebbe conoscere tutto di tutto.

    Ma il gradino così è troppo ripido.
    Mi serve capire se posso spezzettare l'apprendimento...

    E poi una curiosità: visto che ci sono incapsulamente, eredità etc etc, perchè non si fa un ambiente di sviluppo che possa lavorare con un layer puramente grafico ad oggetti...
    Faccio l'interfaccia a drag and drop, do' i nomi agli oggetti, ne setto le connessioni e poi selezionadoli da "menu a tendina" scelgo quali metodi implementare, con quali argomenti e su quali oggetti...
    Certo che poi il tutto diventa codice, ma dovendo lavorare ad alto livello perchè mi devo impicciare di dichiarare tutto in un file, richiamarlo in un altro etc etc?

  2. #2
    Senior Member L'avatar di neronorx
    Data Registrazione
    Aug 2011
    Località
    torino
    Messaggi
    1,587
    Beh ti capisco,io ho iniziato nel 1982 quando si programmava con il famoso BASIC,poi il linguaggio macchina.... Bei ricordi il c64.
    Cmq non abbatterti,io sono 4 mesi che finalmente mi sono messo di brutto iniziando da 0,perché 2 anni fa mi sono lasciato prendere da quei libri: iniziare a programmare con Iphone,alla pagina 100 non ho più capito una cippa.
    Quest'estate mi sono letto un bel libro di 340 pagine che ti insegna l'objective c,iniziando dal linguaggio c,e finalmente molte cose mi si sono chiarite,classi,oggetti,ereditarietà ...
    Non si può imparare a fare i testa a coda con un auto se non hai imparato l'abc della guida.
    Nessun programmatore di Xcode conosce a memoria tutti i metodi e classi esistenti,ma Xcode ti mette a disposizione la documentazione,poi c'è sempre google che ti da una mano e i forum come questo.
    Non avere fretta ad implementare un app,inizia a studiare objective c.
    Se vai sul sito della Feltrinelli.it ci sono libri in ita su objective c anche in formato ebook o PDF che puoi leggerti su Iphone o iPad .
    Dopo aver capito il linguaggio puoi iniziare dei tutorial o libri su programmazione Iphone.

  3. #3
    Junior Member
    Data Registrazione
    Nov 2011
    Messaggi
    28
    Ti ringrazio, è proprio quello che in parte ho già fatto e sto facendo.
    Se dovessi pensare "lateral" direi che il linguaggio di programmazione attuale non è ancora a livello sufficientemente alto per liberare la fantasia in modo completo, la necessità di dichiarare, implementare, sintetizzare ti fa spesso perdere la verve dell'idea madre....

    Ma questo è quello che abbiamo all'anno 2011 e facciamocene una ragione.

    Comincio intanto con una domanda un poco più diretta.

    Per visualizzare una tabella, si usa UITableView. E gli elementi della table sono delle UITableViewCell con la loro bella proprietà Text (o TextLabel?) che definisce il contenuto testuale.

    Come interfaccio una struttura dati con la tavola?
    Prima ancora, come è più rapido e semplice gestire database dentro a un app?
    CoreData? SQL?
    Si usa un NSArray? Un NSDictionary?
    E chi si occupa di pescare le info dalla repository? Il delegate? O il controller?

    a parte la documentazione ufficiale, che sto masticando, sapete indicarmi dove approfondire questi due specific problemi:
    - uso delle table per al visualizzazione dati
    - gestione database
    ?


    Poi con UITableViewData
    Ultima modifica di Skybet; 17-11-11 alle 21:26

  4. #4
    Administrator L'avatar di ignazioc
    Data Registrazione
    Jul 2010
    Messaggi
    3,912
    pur avendo iniziato con il procedurale non ho avuto lo shock di cui parlate.Pensiamo al linguaggio C, se doveste fare un programma in C per gestire una rubrica non fareste forse una struct persona con gli elementi "nome", "cognome" etc? e se voleste dare la possibilità di salvare su file questa persona non mettereste forse un puntatore a funzione all'interno della struttura?


    questo è lo scheletro della OOP, niente magia, niente voodoo.
    Certo poi ci sono tutti i concetti dell'ereditarietà, del polimorfismo etc.


    Per quanto riguarda l'idea di un ide completamente grafico…con interface builder puoi già costruire interfacce senza scrivere una riga di codice, poi ci sono alcuni tool per bambini che fanno programmare mettendo insieme componenti grafici…però per il resto non c'è altro verso per esprimere i propri algoritmi in modo migliore che non con il codice.


    Le classi e i metodi non si imparano tutti, la documentazione e l'header delle classi servono proprio per questo. Sta alla bravura del programmatore capire cosa cercare e dove.


    Ci sono alcuni tutorial sul nostro sito che parlano di tabelle, puoi leggere quelli.
    Per coredata direi che è un tantino presto

    La mia libreria su anobii e la wishlist su amazon.co.uk e il mio hosting provider

  5. #5
    Junior Member
    Data Registrazione
    Nov 2011
    Messaggi
    28
    Peccato, perchè le funzioni fetch di coredata mi sembrano proprio efficaci. Certo mi sento come un elefante in un negozio di porcellana...

    Una domanda elementare ma che non ho trovata esplicitata: se voglio usare un metodo che è parte della classe di un oggetto devo necessariamente dichiarare il metodo nell'header o no?

    L'omissione delle properties porta alla definizione degli oggetti con proprietà standard o genera errore e pianta il programma?

  6. #6
    Senior Member L'avatar di freellino
    Data Registrazione
    Dec 2010
    Località
    bari
    Messaggi
    1,277
    le risposte alle tue tante domande troveranno un senso solo fra qualche mese...
    non lo ritenere frustrante, ma "inevitabile".
    tutti i pescatori ti diranno che tornano a casa con il secchio pieno, quasi nessuno ti dirà delle (molte) volte che hanno perso l'amo perchè non avevano imparato bene a legarlo al nylon...
    il suggerimento, monotono, è leggi un bel libro su obj-c perchè senza delegati-MVC-subclass non vai da nessuna parte!

    francesco

  7. #7
    Junior Member
    Data Registrazione
    Jul 2011
    Messaggi
    48
    Corso online di programmazione android e java
    Ciao Skybet,
    mi sono accorto solo ora del tuo bel post e non posso che condividerlo appieno.
    Anch'io vengo dal vecchio procedurale e l'impatto con l'OOP è stato più che mai drammatico (nel mio caso avrei detto un elefante con un ippopotamo in groppa, in un negozio di porcellana).
    I libri aiutano... sono fondamentali secondo me, ma a volte confondono; è raro trovare testi sufficientemente chiari da darti un'idea rapida di come funzionano le cose (spesso poi, si rivolgono a chi già mastica la programmazione ad oggetti).
    Tra i vari libri che ho comprato, mi sento di consigliarti "Sviluppare applicazioni con Objective-C e Cocoa" di Tim Isted, come inizio: molto chiaro e semplice.
    Oltre ai libri, molto utili ho trovato i vari tutorial ed i vari video sparsi nel web, che con i loro esempi e parti di codice, ti chiariscono molto le idee.
    Poco utile, almeno dal mio punto di vista, è stata la documentazione ufficiale di apple.
    L'ho trovata molto farraginosa e soprattutto scarna di esempi e di codice.
    Intendiamoci, se voglio conoscere una classe ed i suoi metodi devo dargli per forza un'occhiata, ma poi ritorno sul web e mi cerco gli esempi che tanto bene ne spiegano il funzionamento e soprattutto, la sintassi.
    A volte però anche i libri, tutorial e video non ti danno quel che cerchi ed a questo punto, un forum (se non conosci altre persone che condividono con te questa passione) diviene fondamentale.
    In devAPP troverai molte persone disponibili, che ti consiglieranno e ti daranno chiarimenti sui vari dubbi che ti verranno, anche se questi sono banali ai loro occhi. Devo dire che ho trovato molta pazienza, e credimi, li ho stressati molto
    Per il resto, armati di santa pazienza, china la testa e preparati a morderti la lingua per tutte le imprecazioni che ti verranno in mente, perché, come hai già potuto osservare, anche il solo scrivere a video un semplice testo, si traduce in chili di sudore versato :-D

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •