View Full Version : la strada (ardua) dello smanettone sviluppatore...
Programmare mi piace.
Il mio lavoro non è programmare ma spesso mi è necessario.
Dovendo manipolare ed elaborare grosse quantità di dati, presto o tardi pigli in mano una guida e cominci a programmare.
Ed è una figata.
Spesso, a mente fredda, mi rendo conto che se ci dedicassi tempo (averne...) e risorse, potrei "rivoluzionare" il mio modo di lavorare. Potrei crearmi gli strumenti adatti, e tante piccole utilty per automatizzare e sveltire le cose.
A quel punto però mi incazzo!!
Guardo i testi di VB, di C++ con le loro migliaia di pagine, e mi rendo conto che il mio "smanettare" col codice mi fa progredire come una lumaca.
Leggo i manuali e mi rendo conto delle potenza della programmazione ad oggetti e di tutte le sue astrazioni, ma non trovo niente che mi suggerisca in concreto come affrontare i problemi veri, e non i soliti esempietti da 50 righe.
Come devo impostare il progetto?
In quale struttura devo imbrigliare i miei dati?
Come devo gestire gli errori?
Come faccio a estendere qs progetto senza riscriverlo per 3/4?
Mi manca l'esperienza vera, o la formazione specifica, così continuo a saltare aventi e indietro tra "Fondamenti di C++", "Introduzione a VB" e company, ma non riesco a capire come buttar giù l'architettura di un programma, come impostare le basi del SW.
Mi sento il manovale del ciclo for!!!!
Poi ripiglio in mano il libro e pazientemente vado avanti, nei spazi di tempo disponibili.
Chiunque si senta di avere un consiglio utile è benvenuto!
Esistono testi dichiaratamente applicativi con veri progetti sviluppati passo passo?
E le riviste?, ne ho viste alcune in edicola, c'è qualcosa di buono?
Non voglio deluderti ma ho capito perfettamente le difficoltà che ti trovi ad affrontare, ma secondo me da autodidatta il tipo di attitudine che ti fa fare il "salto di qualità" e' molto difficile da acquisire.
La strada milgiore rimane l'esperienza e il confronto con persone piu' brave.
tutto imho ovviamente ;)
E' ovvio, è così con tutto!!
Forse dovrei licenziarmi, fare il programmatore per un paio d'anni e poi ritornare a fare calcoli!!
Originariamente inviato da Jigen-x
E' ovvio, è così con tutto!!
Forse dovrei licenziarmi, fare il programmatore per un paio d'anni e poi ritornare a fare calcoli!!
io non lascerei mai un posto di lavoro fisso per qualcosa di nonsicuro.....
magari puoi dedicarci più tempo, cercare materiale online che è gratis e spesso è fatto benissimo
in effetti un progetto da fare così, senza che nessuno te ne dia i paramtri da rispettare e i risultati da conseguire è un casino........
Originariamente inviato da Jigen-x
E' ovvio, è così con tutto!!
Forse dovrei licenziarmi, fare il programmatore per un paio d'anni e poi ritornare a fare calcoli!!
tornando a quello che chiedevi nel primo post:
- riviste: nelle riviste non trovi mai articoli che ti aiutino a impostare un progetto di una certa dimensione in modo efficace. Su una rivista di solito trovi articoli su come usare la libreria xyz nel tuo software oppure su confronti tra tecnologie simili per capire quale scegliere, ecc.ecc. Aiuta leggerle per il fatto che puoi sapere cosa c'e' in giro che ti puo' aiutare a risolvere un problema, o che tipo di tecnologia sta prendendo il sopravvento in un certo campo.
- libri: libri di ingegneria del software ce ne sono finche' vuoi, il problema e' che non ne ho quasi mai finito uno da tanto sono noiosi e distanti dai problemi che uno si trova ad affrontare "sul campo". Secondo me dei vari guru dell' "object orientation" buona parte non ha mai scritto una riga di codice e ha fatto i miliardi parlando e scrivendo di cosa che teoricamente sono bellissime ma non sempre sono così facili da applicare a un progetto....
è la stessa situazione in cui mi trovo io :(
...quella di cambiare lavoro era una battuta!
come detto continuo a studiare e a decifrare tutorials qua e là, sperando che un giorno la lampadina si accenda (o di fare amicizia con un vero sviluppatore!)
1) esercizi, esercizi ed ancora esercizi.....
2) chiedere a chi quella particolare strada (difficoltà) l'ha già percorsa
3) tanta ed inesauribile passione
p.s.
vale anche per me :)
Originariamente inviato da Jigen-x
...quella di cambiare lavoro era una battuta!
Almeno tu un lavoro l'hai.
Io ho 16 anni e lavoro nn lo ho:D
Come ha gia detto misterx serve una riserva inesauribile di passione, impegno. Scalare montagne di esercizi per imparare i fondamentali. Studiare e leggere tantissimo. Senza una vasta conoscenza teorica non si va da nessuna parte. Poi secondo me serve tantissimo essere curiosi, leggere il codice di altri, vedere come hanno risolto certi problemi. Poi un giorno qualcosa scatta e capisci che l'unico modo per non essere piu uno smanettone è metterci del metodo. Che qualsiasi software si vuole realizare deve essere prima pensato su carta, non si parte mai a scrivere subito del codice. Sempre secondo me è meglio perdere due ore a pensare a cosa dorva fare e come strutturare il codice che perdere poi 2 settimane a riscrivere 10 volte da capo lo stesso programma.
ciao ;)
Dimenticavo la cosa più importante! Come dice VICIUS, progetta su carta e spendici del tempo, quando ti sembra sia pronto, probabilmente ha bisogno di un'altra occhiata ;)
Concordo con misterx su tutti e tre i punti.
Posso dirti qualcosa sulla base delle mie esperienze. Io ho imparato il C (poco a acuola e molto su un libro che reputo ottimo).
Dopo aver imparato ogni argomento (il che significa leggere il libro, scrivere e compilare gli esempi sul pc, modificare gli esempi), ho una base su di esso.
Il prossimo passo è approfondirlo. Per questo cerco di inventarmi qualche problema (roba semplice, che sfrutti quell'argomento in particolare, es liste collegate,) che metta in evidenza le mie difficoltà.
Dato il problema il modo migliore (IMO) per risolverlo è il brainstorming (volgarmente ragionamento, ma brainstorming fa più scena ;)). In questo modo, anche se è vero che altre persone lo hanno già risolto e spesso ottimizzato, imparo anchio a farlo e sviluppo capacità di ragionamento che poi tornano utili (inconsciamente) nei programmi più complessi (nell'ottica secondo cui reinventare la ruota è cercamente inutile ai fini pratici, ma può insegnare molte cose, IMO)
La progettazione è un altro paio di maniche. Il problema della riscittura del codice conseguente a manutenzione è un grosso problema (almeno dal mio pto di vista, che programmo in C. In C++ dovrebbe essere tutto più semplice...) credo che qui l'unica soluzione sia un grosso sforzo progettuale in cui oltre a cosiderare il problema e la sua soluzione si prevedano azioni successive di manutenzione e si cerchi di ottenere aree di codice indipendente la cui manutenzione (modifica) non influenzi altre aree (non abbia fastidiosi effetti collaterali). In questo senso C++ aiuta molto, credo.
Lo so è un post lungo e probabilmente io non lo leggerei ;), ma non ho ancora finito :eek:
Per capire come strutturare il progetto, credo ci siano due modi:
1) Te lo insegna qualcuno;
2) Fai tanti errori prima, che ti convincono a spendere più tempo nel prossimo progetto a strutturarlo meglio.
Come strutturare i dati? Vedi sopra, ma qui l'esperienza personale credo prevalga.
Gestire gli errori? Vedi ancora sopra.
In sostanza, quanto detto da misterx. Vorrei agiungere che personalmente preferisco reinventare la ruota piuttosto che farmela prestare da qualcun altro (a meno di situazioni particolari, ad esempio le librerie grafiche, in cui il tempo necesssario per avere qualcosa che sia 1/1000 di quanto disponibile in rete non valga il tempo speso).
Ciao e happy coding ;)
~{Blackangel}~ UT
30-05-2004, 12:35
be che dire anchio sono all'inizio e ankio ho molti problemi...
io faccio il meccanico e imparare a programmare per me è un aspettativa futura per un lavoro cosi almeno posso stare seduto :D
solo nel mercato del software la situazione e un po complessa se tu sai programmare in java viene richiesto un programmatore in perl da quell'azienda se sai il perl vogliono il visual basic etc... se tu sai programmare viene richiesco un designer...
io mi pongo diversamente se voglio programmare... ossia mi butto a capofitto cerco aiuto e cerco on-line... e alla fine ottengo sempre il risultato finale che cerco ma devo sbattere la :muro:
mahhh speriamo sempre. programmare è veramente bello e a me piace tantissimo.
:D
Dark_Tranquillity
30-05-2004, 15:37
secondo me se si vuole iniziare a programmare la cosa migliore è iniziare dalla programmazione server side... ad es. PHP, da lì poi passare al C.
sul web si hanno + opportunità di fare esperimenti...
anche la creazione del proprio sito sarebbe una bella sfida...
una volta capito come programmare poi si possono usare tutti i linguaggi...
io tre anni fa quando ho finito le scuole superiori mi sentivo in grado di fare delle belle cose con la programmazione, venivo da 3 anni ben spiegati di C/C++ e Delphi, insomma pensavo di avere un buon metodo di lavoro...
poi ho trovato un lavoro in una software house (all'inizio estivo e poi part-time visto che studio ancora) e ho capito che non sapevo fare un ca@@o di niente, la scuola si ti da le basi e ti fa studiare un sacco di teoria, sotto questo aspetto magari ne sapevo di + di alcuni che lavoravano li ma se parliamo di pratica... nei primi 3 mesi mi hanno fatto fare un po come mi pareva a me riguardo al metodo di lavoro, mi hanno detto "vediamo come ti sai organizzare", il punto è che dopo circa 4 mesi tutto il codice cha avevo scritto erano circa 50000 righe di mondezza pronta da buttare nel bidone, impossibile fare la minima manutenzione su quel codice che non era neanche per niente espandibile... ero MOLTO demoralizzato... :cry: :cry:
poi per fortuna la pratica e la vicinanza di persone esperte, neanche tanto nella teoria appunto, ma capaci di creare cose che non andavano riscritte ogni volta, mi ha aiutato un sacco...
aiutato da queste persone in un mese ho riscritto il programma da capo e adesso, quasi 2 anni dopo non c'è stato ancora bisogno di grossa manutenzione!!
adesso se ho un progetto bene o male riesco sempre a pianificare tutto in modo da fare un lavoro fatto decentemente, l'importante è PRIMA di tutto prendersi un bel blocco di carta e iniziare a scrivere, discutere TUTTI gli aspetti dell'applicativo che devi realizzare e cercare sempre di tenere un occhio anche alla parte implementativa, nel senso che quando ti viene in mente un modo di realizzare una cosa pensa anche a come farai a implementarla perchè spesso non è cosi facile come dire il concetto a parole....
inoltre chi ti chiede un programma nel 90% dei casi non sa di preciso cosa vuole e non essendo un programmatore non sa quali possono essere le difficoltà nel creare certi automatismi, cerca sempre quindi di dirigere il cliente verso quello che vuole ma pensando anche al lavoro che dovrai farci tu dietro per farglielo avere...
Risottolineerei ciò che già altri hanno detto, ovvero l'importanza di sviluppare il progetto su carta. E' una fase fondamentale, a meno che non ti piaccia prendere a testate il muro per poi accorgerti che il tuo while ha la condizione al contrario (questo è solo un esempio, in realtà scrivere su carta iuta ad avere una visione insieme di tutto: prblemi + soluzioni e ti permette di tornare indietro senza buttare via linee di codice).
Per quanto riguarda cominciare a programmare, beh non so che dire... a me è stato insegnato il C a scuola perchè il lab non aveva le licenze x pascal (ora sono felice di aver imparato questo linguaggio) e avevo un professore che ci ha spiegato anche come passare dal problema al programma (forse l'insegnamento più importante dei cinque anni di superiori).
Personalmente ho usato PHP per il mio sito e devo dire che è identico al C (come sintassi) pertanto impararlo è stato semplicissimo. Non credo sia vero il contrario, però, perchè PHP evita molti controlli (allocazione automatica della memoria, niente dichiarazione di variabili, conversione automatica del tipo di variabili, etc...)
Se poi parliamo di lavoro, allora io non ho esperienze nel campo, studio programmazione perchè mi piace.
Ciauz ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.