Volevo imparare un linguaggio di programmazione orientato agli oggetti, non lo voglio per nessun motivo solo per conoscere l'intero concetto di OOP. Qualcuno può dirmi quale lingua dovrei iniziare ad imparare?
Volevo imparare un linguaggio di programmazione orientato agli oggetti, non lo voglio per nessun motivo solo per conoscere l'intero concetto di OOP. Qualcuno può dirmi quale lingua dovrei iniziare ad imparare?
Risposte:
Alcuni ulteriori suggerimenti:
Il miglior libro che abbia mai letto sulla barra OOP nessuno è la costruzione di software orientata agli oggetti di Bertrand Meyer . Non è una lettura 'facile' in cui dovrai pensare intensamente in alcuni punti. Ma fa il miglior lavoro che ho visto per spiegare i principi di OO.
Per quanto riguarda le lingue: starei lontano dal C ++. Troppo grande per scopi di apprendimento. Se vuoi una lingua che ti aiuti davvero a capire OO (al contrario di una in cui scrivere le applicazioni tradizionali / ottenere un lavoro), guarda smalltalk. O Eiffel (la lingua nel libro di Meyer sopra).
Se vuoi un linguaggio un po 'più mainstream ma che supporta fedelmente i principi OO, Python è una buona scommessa. Anche Java e C # sono decenti se si desidera la digitazione statica.
Un avvertimento però: la lingua non ti insegnerà OO. Può solo aiutare (o ostacolare) quanto bene supporta i concetti di OO. Imparare OO significa imparare a pensare in termini di OO. Per questo sarei tornato al libro di Meyer.
hth.
Puoi imparare qualsiasi linguaggio orientato agli oggetti come C ++, Java, C # ecc. Per provare OOPS.
Se vuoi davvero imparare OOP, devi pensare oltre le lingue e capire che è un paradigma che aiuta la complessità dei mangae coinvolti nei programmi software proprio come il modo in cui li gestiamo in questo mondo reale. Quindi apprendi i concetti di base in OO come polimorfismo, ereditarietà, incapsulamento (PIE) ecc
Ci sono buoni libri sull'analisi troppo orientata agli oggetti e al design con applicazioni (2a edizione) di Grady Booch
Inoltre, puoi provare blog come questo che ho trovato è abbastanza semplice da iniziare con- affascinanteoops.com
Vuoi imparare OOP? Una risposta: Smalltalk.
È un linguaggio elegante ed è OO alla base. Imparerai OOP dall'inizio e non sarai ostacolato da tutte le altre distrazioni che altre lingue riescono a incorporare.
Vince Smalltalk. E ci sono anche alcuni buoni e-book gratuiti disponibili (vedi: Stephane Ducasse )
Dovresti imparare il C ++, o forse uno degli antenati come Smalltalk. Il C ++ offre una netta separazione tra concetti come orientamento degli oggetti, gestione della memoria e riferimento rispetto al valore e ha un forte supporto generico.
Non imparare Java o un linguaggio .NET come C #. Quando impari una lingua come Java, impari cose come "Gli oggetti sono sempre nell'heap e sono sempre riferimenti", il che è vero solo per Java e assolutamente non vero per OOP in generale. Questa confusione di concetti (orientamento dell'oggetto, gestione della memoria, riferimento rispetto al valore) è molto pericolosa per una prima lingua, perché una volta che li hai bloccati nella testa, può essere molto difficile rimetterli fuori. C # è un po ' meglio in questo senso, ma non molto. Inoltre, possono avere un'alta tendenza a insegnare "L'ereditarietà è un martello e tutto è un chiodo" con un supporto di programmazione generico debole.
Il modo migliore per imparare i concetti di OOP è scrivere sempre più codice e farlo revisionare spesso. Fai pratica facendo un buon programmatore.
Pensa agli scenari del mondo reale, definisci una dichiarazione del problema: risolvila nel codice e falla rivedere. Puoi sempre ottenere aiuto da /codereview// per recensioni :)
Buona codifica !!!
passi
Il mio primo contatto con il mondo OO fu il C ++, che non fu un brutto inizio. Ma sono migliorato molto quando ho imparato Python. La differenza viene dalle lingue: provare idee ('come posso risolvere questo problema in modo OO?') In C ++ ha bisogno di più codice per essere scritto e include molte più insidie che provare la stessa idea in Python. Quindi consiglierei Python.
Non penso che dovresti cercare un'altra lingua mentre cerchi di imparare OOP. Per me, è più facile capire la teoria e poi imparare ad applicarla se posso collegarmi a qualcosa che già conosco. Capire una nuova sintassi si mette in mezzo.
Puoi iniziare con qualsiasi libro OOP. Ancora una volta, ne prenderei uno nella mia lingua preferita. Leggere un libro sul refactoring (stile OOP) mi ha aiutato nell'applicazione di OOP. Ho preso un progetto esistente (nessuna distrazione dalla raccolta dei requisiti) e ho trovato nuovi modi per migliorarlo. Non era solo OOP per amor di OOP. Quindi puoi imparare come farlo dall'inizio alla fine su un nuovo progetto. La logica qui è che non la capirai sempre dall'inizio. Se riesci a riconoscere dove è appropriato, starai meglio. Come la maggior parte delle cose, non risolverà tutti i problemi.
Ci sono limiti definiti con alcune lingue. Se il tuo obiettivo è diventare il padrone dell'eredità multipla, .NET è fuori.
Vado contro il pensiero convenzionale qui e suggerisco che le lingue più semplici per usare OOP non sono necessariamente le migliori lingue per impararlo . Sono stato esposto per la prima volta a OOP con C ++, ma non l'ho "capito" fino a quando non ho letto il capitolo del libro Cammello di Larry Wall su OOP con Perl. Per qualche ragione ho avuto difficoltà a comprendere la differenza tra classi e oggetti fino a quando non ho dovuto benedire esplicitamente un oggetto in una classe. Non ho veramente capito l'implementazione sottostante di OOP fino a quando non lo ho fatto in C con GObject, dove nessuno di questi dettagli è nascosto a te. Non ho veramente capito le migliori pratiche fino a quando non ho seguito un corso aziendale indipendente dalla lingua. È un argomento molto grande,.