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.
self-improvement
algorithms
data-structures
sushil bharwani
sumber
sumber
Jawaban:
Baca 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 saja 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. Buat 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 mengapa.
"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. Dapatkan 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/
sumber
Algoritma
Saya mengambil pelajaran sihir dalam pengaturan kelompok ketika saya berusia dua belas tahun. Nama penyihir itu adalah Joe Carota. Suatu kali dia melakukan trik 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 gila, 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, saya menemukan bahwa proses ini disebut "Stepwise Refinement". Saya pikir hari ini mereka menyebutnya refactoring.
Berhasil maka masih berfungsi sekarang.
sumber
di sini tautan berikut mengarahkan Anda ke salah satu kelas DS dan Algoritma yang paling sukses oleh MIT yang pernah saya ikuti.
http://academicearth.org/courses/introduction-to-algorithms
Semoga Anda menikmati seri video ini. Semoga berhasil !!!
sumber
Lihat apakah Anda dapat mengikuti kursus online, atau diajari. Gagal itu, ini muncul dalam pencarian google cepat. Saya baru saja mengambil kelas pada musim semi yang lalu (pertama kali, saya pindah dari EE ke perangkat lunak) dan tidak terlalu sulit untuk mengambilnya jika Anda memahami petunjuk dengan baik.
sumber
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.
sumber
Cobalah untuk mendaftar dalam kursus tingkat sarjana dalam struktur data dan algoritma, itu selalu baik untuk mempelajari konsep-konsep ini bersama yang lain.
sumber
Mulai bekerja pada pemecahan masalah klasik pada misalnya sphere online , situs mungkin tidak terlihat mewah tetapi bocah, 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 + 40 lebih. Jadi Anda bisa fokus sepenuhnya pada pemecahan masalah dengan bahasa pemrograman apa pun yang Anda rasa nyaman.
sumber
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 kursus MS Comp Sci saya. 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 Perancangan Algoritma yang disebutkan orang lain juga merupakan sumber yang bagus untuk mempelajari identifikasi masalah, tetapi saya menemukan CLRS lebih baik untuk detail murni.
sumber
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.
sumber
Beli buku ini , Pinjam ini atau Curi ini! Sisanya akan mengikuti :)
Pengantar Algoritma oleh Rivest dan Cormen. Akan sangat sulit untuk mengikuti pada awalnya begitu Anda berhasil melewati penjelasan Mergesort dalam pendahuluan. 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.
sumber