Saya ingin belajar bahasa pemrograman berorientasi objek, saya tidak ingin itu untuk tujuan apa pun hanya untuk mengetahui seluruh konsep OOP. Jadi, adakah yang bisa memberi tahu saya bahasa mana yang harus saya pelajari?
object-oriented
Serigala berkafein
sumber
sumber
Jawaban:
Beberapa saran lebih lanjut:
Buku terbaik yang pernah saya baca di OOP tidak ada buku adalah Konstruksi Perangkat Lunak Berorientasi Obyek Bertrand Meyer . Ini bukan bacaan yang 'mudah' karena Anda harus berpikir keras di suatu tempat. Tapi itu melakukan pekerjaan terbaik yang pernah saya lihat menjelaskan prinsip-prinsip OO.
Adapun bahasa: Saya akan tinggal jauh dari C ++. Terlalu besar untuk tujuan belajar. Jika Anda menginginkan bahasa yang benar-benar akan membantu Anda memahami OO (berbeda dengan yang Anda gunakan untuk menulis aplikasi arus utama / mendapatkan pekerjaan menggunakan), lihatlah smalltalk. Atau Eiffel (bahasa dalam buku Meyer di atas).
Jika Anda ingin bahasa yang sedikit lebih umum tetapi masih setia mendukung prinsip-prinsip OO maka Python adalah taruhan yang bagus. Java & C # juga layak jika Anda ingin mengetik statis.
Satu kata peringatan: bahasa tidak akan mengajarkan Anda OO. Ini hanya dapat membantu (atau menghambat) seberapa baik mendukung konsep OO. Belajar OO benar-benar tentang belajar berpikir dalam istilah OO. Untuk itu saya akan kembali ke buku Meyer.
hth.
sumber
Anda dapat mempelajari bahasa berorientasi objek seperti C ++, Java, C # dll. Untuk mencoba OOPS.
Jika Anda benar-benar ingin belajar OOP, Anda perlu berpikir di luar bahasa dan memahami bahwa itu adalah paradigma yang membantu kompleksitas mangae yang terlibat dalam program perangkat lunak sama seperti bagaimana kita mengelolanya di dunia nyata ini. Kemudian pelajari konsep dasar dalam OO seperti Polimorfisme, Warisan, Enkapsulasi (PIE) dll
Ada banyak buku bagus di sekitar terlalu-Object-Oriented Analysis and Design with Applications (2nd Edition) oleh Grady Booch
Juga, Anda dapat mencoba blog seperti ini yang saya temukan cukup sederhana untuk memulai dengan- fascinatingoops.com
sumber
Anda ingin belajar OOP? Satu jawaban - Smalltalk.
Ini adalah bahasa yang elegan dan OO pada intinya. Anda akan belajar OOP dari awal dan tidak akan terhambat oleh semua gangguan lain yang dikelola oleh bahasa lain.
Smalltalk menang. Dan ada juga beberapa buku elektronik gratis yang bagus (lihat: Stephane Ducasse )
sumber
Anda harus belajar C ++, atau mungkin salah satu leluhur seperti Smalltalk. C ++ menawarkan pemisahan yang bersih antara konsep-konsep seperti orientasi objek, manajemen memori, dan nilai vs referensi, dan memiliki dukungan generik yang kuat.
Jangan belajar Java atau bahasa .NET seperti C #. Ketika Anda belajar bahasa seperti Jawa, maka Anda belajar hal-hal seperti "Objek selalu ada di tumpukan dan selalu referensi", yang hanya berlaku untuk Jawa dan sama sekali tidak benar untuk OOP secara umum. Perpaduan konsep-konsep ini (orientasi objek, manajemen memori, referensi vs nilai) sangat berbahaya untuk bahasa pertama, karena begitu Anda terjebak di kepala Anda, akan sangat sulit untuk membuatnya kembali. C # agak lebih baik dalam hal ini tetapi tidak banyak. Selain itu, mereka dapat memiliki kecenderungan tinggi untuk mengajarkan "Warisan adalah palu dan semuanya adalah paku" dengan dukungan pemrograman generik yang lemah.
sumber
Cara terbaik untuk mempelajari konsep OOP adalah dengan menulis kode lebih banyak dan lebih sering ditinjau. Praktek membuat programmer yang baik.
Pikirkan skenario dunia nyata, tentukan pernyataan masalah - pecahkan dalam kode dan tinjau. Anda selalu dapat memperoleh bantuan dari /codereview// untuk ulasan :)
Selamat coding !!!
sumber
Langkah
sumber
Kontak pertama saya ke dunia OO adalah C ++, yang bukan awal yang buruk. Tapi saya banyak berkembang ketika belajar Python. Perbedaannya berasal dari bahasa: mencoba ide ('bagaimana saya bisa menyelesaikan masalah ini dengan cara OO?') Dalam C ++ membutuhkan lebih banyak kode untuk ditulis dan menyertakan lebih banyak jebakan daripada mencoba ide yang sama dengan Python. Jadi saya akan merekomendasikan Python.
sumber
Saya tidak berpikir Anda harus melihat ke dalam bahasa lain saat mencoba mempelajari OOP. Bagi saya, lebih mudah untuk memahami teori dan kemudian belajar menerapkannya jika saya dapat menghubungkannya dengan sesuatu yang sudah saya ketahui. Mencari tahu sintaks baru baru saja menghalangi.
Anda dapat mulai dengan buku OOP apa pun. Sekali lagi, saya akan mendapatkannya dalam bahasa pilihan saya. Membaca buku tentang refactoring (Gaya OOP) membantu saya dalam penerapan OOP. Saya mengambil proyek yang sudah ada (Tidak ada gangguan dari pengumpulan persyaratan) dan menemukan cara baru untuk memperbaikinya. Bukan hanya OOP demi OOP. Kemudian Anda bisa belajar bagaimana melakukannya dari awal hingga selesai pada proyek baru. Logikanya di sini adalah Anda tidak akan selalu melakukannya dengan benar sejak awal. Jika Anda bisa mengenali mana yang sesuai, Anda akan lebih baik. Seperti kebanyakan hal, itu tidak akan menyelesaikan setiap masalah.
Ada batasan yang pasti dengan beberapa bahasa. Jika tujuan Anda adalah menjadi master multi-inheritance, .NET sedang keluar.
sumber
Saya akan menentang pemikiran konvensional di sini dan menyarankan bahwa bahasa yang paling mudah untuk menggunakan OOP belum tentu bahasa terbaik untuk mempelajarinya . Saya pertama kali terkena OOP dengan C ++, tetapi saya tidak "mendapatkannya" sampai membaca bab buku karya Larry Wall tentang OOP dengan Perl. Untuk beberapa alasan saya kesulitan memahami perbedaan antara kelas dan objek sampai harus secara eksplisit memberkati objek ke dalam kelas. Saya tidak benar-benar memahami implementasi OOP yang mendasarinya sampai melakukannya di C dengan GObject, di mana tidak ada detail yang disembunyikan dari Anda. Saya tidak benar-benar memahami praktik terbaik sampai mengambil kelas korporat yang agnostik bahasa. Itu topik yang sangat besar,.
sumber