it-swarm-id.com

Bagaimana cara mempelajari algoritma dan struktur data?

Ini merupakan kelanjutan dari pertanyaan saya sebelumnya di mana saya bertanya apakah perlu mempelajari algoritma dan struktur data. Saya merasa ya itu.

Sekarang saya bekerja di lingkungan di mana saya tidak akan pernah mendapatkan kesempatan untuk mempelajarinya dengan bereksperimen atau secara praktis atau dalam tugas apa pun. Apa pendekatan yang tepat seperti buku yang tepat, jenis masalah yang tepat, jenis sumber daya yang tepat yang bisa saya lalui untuk memberikan enam atau dua tahun atau dua tahun untuk mempelajari algoritma dan struktur data? Dan juga membentuk pikiran saya sedemikian rupa sehingga dapat menghubungkan masalah dengan struktur data dan algoritma.

38
sushil bharwani

Baca.

Tidak, sungguh, baca.

Baca segala sesuatu tentang algoritma dan desain yang dapat Anda temukan. Ada banyak buku fenomenal di luar sana. Buku-buku algoritma Sedgewick bagus. Manual Desain Algoritma oleh Skiena juga bagus. Bersama-sama, buku-buku ini mengikuti saya di setiap rak buku di setiap pekerjaan yang saya kunjungi, bersama dengan The Mythical Man-Month.

Lalu tanyakan.

Berbicaralah dengan orang yang Anda hormati. Tanyakan kepada mereka poin keputusan apa yang mereka miliki dan mengapa mereka membuat keputusan yang mereka lakukan. Yang baik akan selalu bisa memberi tahu Anda, "Saya memilih untuk melakukan X karena lebih baik daripada A, B dengan cara ini. Saya bisa menggunakan C, tetapi saya merasa ini adalah pilihan yang lebih baik karena ini".

Selanjutnya, lakukan.

Bangun barang. Bangun barang-barang yang tidak akan pernah Anda gunakan. Bangun barang-barang yang tidak akan Anda butuhkan. Pergi menulis sebuah program yang memecahkan teka-teki Sudoku. Sekarang lakukan lagi. Dan lagi. Bangun 5 cara yang sangat berbeda. Bangun sebuah program yang menghasilkan teka-teki Sudoku dan memasukkannya ke dalam solver. Temukan pemecah mana yang tercepat. Lalu...

Cari tahu alasannya.

"Apa" hampir tidak pernah penting. Maksud saya, ya, sangat penting untuk menyelesaikan proyek yang ada, tetapi pada akhirnya jika Anda tahu "apa" tanpa mengetahui "mengapa", maka Anda mungkin tidak pernah melakukannya di tempat pertama. Anda mendapat poin penting di resume Anda. Pergi ambil kue dan ucapkan selamat kepada diri sendiri. "Mengapa" jauh lebih penting daripada "apa".

Dan sebagai catatan, Sudoku adalah contoh. Saya menghabiskan banyak waktu luang melalui latihan itu dengan satu ton teka-teki logika tentang Kongregate dan belajar banyak di jalan.

http://www.Amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/http://www.Amazon.com/Algorithm-Design -Manual-Steven-Skiena/dp/1848000693 /http://www.Amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/

40
Hounshell

Algoritma

Saya mengambil pelajaran sihir dalam pengaturan kelompok ketika saya berusia dua belas tahun. Nama penyihir itu adalah Joe Carota. Suatu kali dia melakukan tipuan dan saya berkata, "Bagaimana kamu melakukan itu?" Dia mengatakan sesuatu hari itu yang terus melekat padaku sejak saat itu.

Tanggapan Joe, "Michael, jika Anda benar-benar ingin tahu bagaimana trik itu dilakukan, Anda harus mengetahui bagaimana Anda akan melakukannya sendiri."

Ya tentu saja bukan itu yang ingin saya dengar tetapi itu membuat pikiran saya fokus pada pemecahan masalah. Ini adalah pemecahan masalah dari sudut pandang saya. Jika upaya pertama saya untuk memecahkan masalah itu mengambil tujuh belas langkah dan benar-benar klunky, kabar baiknya adalah saya memecahkan masalahnya.

Kemudian dengan melihat solusi yang saya kembangkan dan mencari cara untuk memperbaiki solusi itu saya akan belajar bagaimana merampingkan hasil akhir. Kemudian dalam kehidupan pemrograman komputer saya menemukan bahwa proses ini disebut "Stepwise Refinement". Saya pikir hari ini mereka menyebutnya refactoring.

Berhasil maka masih berfungsi sekarang.

di sini tautan berikut mengarahkan Anda ke salah satu kelas DS dan Algoritma paling sukses dengan MIT yang pernah saya ikuti.

http://academicearth.org/courses/introduction-to-algorithms

Semoga Anda menikmati seri video ini. Semoga berhasil !!!

9
Tharindu Rusira

Lihat apakah Anda dapat mengikuti kursus online, atau diajari. Gagal, ini muncul dalam pencarian google cepat. Saya baru saja mengambil kelas di musim semi yang lalu (pertama kali, saya pindah dari EE ke perangkat lunak) dan tidak terlalu sulit untuk mengambilnya jika Anda memahami pointer dengan baik.

2
Stephen Furlani

Jika Anda tidak dapat mengikuti kursus ini, saya akan merekomendasikan The Algorithm Design Manual. Ada PDF gratis di sini , tetapi ada baiknya mendapatkan buku yang sebenarnya jika Anda berencana pemrograman secara profesional.

2
Jason Baker

Mulailah bekerja untuk memecahkan masalah klasik misalnya sphere online , situs mungkin tidak terlihat mewah tetapi anak laki-laki, ini adalah masalah pemrograman klasik yang membutuhkan banyak struktur data penting dan algoritma yang digunakan saat ini.

Solusi dapat diajukan dalam berbagai bahasa pemrograman dari C/C++ ke JavaScript, LISP, Smalltalk, assembler + sekitar 40 lainnya. Jadi Anda bisa fokus sepenuhnya pada pemecahan masalah dengan bahasa pemrograman apa pun yang Anda rasa nyaman.

1
Ernelli

CLRS

Sejauh ini sumber daya favorit saya. Saya menggunakannya dalam kursus algoritma ilmu komputer sarjana saya dan akhirnya membeli buku 4 tahun kemudian untuk membaca sendiri untuk mempersiapkan M.S. Kursus Comp Sci. Ini tidak mudah dibaca dengan cara apa pun, tetapi jika Anda bekerja untuk memahami beberapa matematika/bukti yang disajikan dan kemudian menerapkan pseudo-code dalam bahasa favorit Anda, itu sepadan dengan label harga yang lumayan besar. Manual Desain Algoritma yang disebutkan orang lain juga merupakan sumber yang bagus untuk mempelajari identifikasi masalah, tetapi saya menemukan CLRS lebih baik untuk detail murni.

1
Kurtis

Cobalah untuk mendaftar dalam kursus tingkat sarjana dalam struktur dan algoritma data, selalu baik untuk mempelajari konsep-konsep ini bersama dengan yang lain.

1
Martijn Verburg

Anda selalu dapat mencoba sesuatu seperti ini: http://codekata.pragprog.com/

Saya selalu belajar lebih baik dengan memikirkannya daripada membaca. Namun, Anda harus memiliki dokumentasi/bahan bacaan yang tersedia untuk mencari jawaban.

0
RobotHumans

Beli ini buk , Pinjam ini atau Curi ini! Sisanya akan mengikuti :)

Pengantar Algoritma oleh Rivest dan Cormen. Akan sangat sulit untuk mengikuti awalnya setelah Anda melewati penjelasan Mergesort dalam pengantar. Segalanya tersingkap bagimu dengan indah.

Plus Anda akan menjadi lebih baik jika Anda memecahkan masalah yang diberikan dalam buku ini. Saya tidak pernah benar-benar ingin berpisah dengan buku itu bahkan setelah lulus dari sekolah menengah. Itu bagus.

0
Venki