Menjadi programmer yang sepenuhnya otodidak, saya ingin jika saya dapat memperbaiki diri dengan belajar sendiri kursus ilmu komputer yang diajarkan kepada lulusan CS biasa.
Menemukan sumber daya yang berbeda di internet itu mudah, tentu saja ada perlengkapan kursus terbuka MIT , dan ada kursus Coursera dari Stanford dan universitas lain. Ada banyak sumber daya terbuka lainnya yang tersebar di Internet dan beberapa buku bagus yang berulang kali direkomendasikan.
Saya telah belajar banyak, tetapi studi saya sangat terfragmentasi, yang benar-benar mengganggu saya. Saya akan senang jika di suatu tempat, saya dapat menemukan jalan yang harus saya ikuti dan setumpuk yang harus saya batasi, sehingga saya bisa yakin tentang bagian penting apa dari ilmu komputer yang telah saya pelajari, dan kemudian secara sistematis mendekati yang belum saya miliki.
Masalah dengan Wikipedia adalah tidak memberi tahu Anda apa yang penting tetapi bersikeras menjadi referensi lengkap.
Perangkat kursus terbuka MIT untuk ilmu Komputer dan Rekayasa Kelistrikan. memiliki daftar besar kursus juga tidak memberi tahu Anda kursus apa yang penting dan apa opsional sesuai minat / kebutuhan orang. Saya tidak menemukan menyebutkan urutan di mana orang harus mempelajari mata pelajaran yang berbeda.
Yang saya sukai adalah membuat daftar yang bisa saya ikuti, seperti yang dummy ini
SUBJECTS DONE
Introduction to Computer Science *
Introduction to Algorithms *
Discrete Mathematics
Adv. Discrete Mathematics
Data structures *
Adv. Algorithms
...
Seperti yang bisa Anda lihat dengan jelas, saya punya sedikit gagasan tentang mata pelajaran apa sains komputer tertentu.
Akan sangat membantu, bahkan jika seseorang menunjukkan kursus penting dari perlengkapan Kursus MIT (+ mata pelajaran penting yang tidak hadir di MIT OCW) dalam urutan studi yang disarankan.
Saya akan daftar posting yang sudah saya lalui (dan saya tidak mendapatkan apa yang saya cari di sana)
https://softwareengineering.stackexchange.com/questions/49557/computer-science-curriculum-for-non-cs-major - jawaban teratas mengatakan tidak pantas belajar cse
https://softwareengineering.stackexchange.com/questions/110345/how-can-a-self-taught-programmer-learn-more-about-computer-science - menunjuk ke MIT OCW
sumber
Jawaban:
Saya telah melihat beberapa materi kuliah dari MIT, dan itu sangat buruk . Mereka memiliki bahan ajar yang membutuhkan VC5, banyak variabel global implisit, melewati warna sebagai "Biru" alih-alih ARGB 32bit, apalagi mengapung 4x [0,1], hal semacam itu. Saya tidak akan mempercayai kurikulum atau kode hanya karena berasal dari universitas ternama.
Gelar CS saya (dari universitas yang masuk 10 besar di UK untuk CS) terdiri dari:
Tahun pertama:
Tahun kedua:
Tahun ketiga:
Seperti yang akan Anda perhatikan, hampir semuanya adalah "dasar" dari sesuatu dan hampir tidak ada yang tercakup dalam kedalaman yang bermanfaat.
Hal-hal yang sebenarnya patut dilakukan, penting:
Hal-hal yang patut dilakukan, secara opsional:
Hal-hal yang penting tetapi saya toh tidak menutupinya:
Sisanya adalah buang-buang waktu. Sayangnya, sebagian besar dari sembilan poin ini saya sudah tahu, atau mengambil bagian yang berguna di tempat lain. Jika Anda membaca tentang hal-hal seperti masalah FizzBuzz dengan cepat menjadi jelas bahwa Anda sebenarnya tidak perlu tahu terlalu banyak untuk berada di atas paket-yang beruntung, karena gelar saya dan banyak materi yang saya lihat online untuk gelar lain benar-benar tidak banyak mengajar sama sekali.
sumber
Open Course ware hanyalah daftar kursus yang telah mereka sediakan. Jika Anda ingin tahu apa yang akan diambil seorang siswa, mampir ke situs web MIT (non OCW) dan lihat program yang sebenarnya. Mereka memiliki daftar apa yang diperlukan dan apa yang dianggap sebagai prereq untuk apa. Ini halaman mereka.
sumber
Coba rekomendasi kurikulum Ilmu Komputer 2001 dari ACM / IEEE, ditautkan di sini: http://www.acm.org/education/curricula-recomendations
bersama dengan pembaruan CS 2008.
Halaman 17 dari laporan tahun 2001 memiliki bagan praktis yang menggarisbawahi semua "inti" pengetahuan dan masih daftar pilihan.
Suatu program sarjana tidak akan memiliki waktu untuk mencakup bahkan mata kuliah yang dianggap inti oleh rekomendasi ini, sehingga mereka akan menyatukan beberapa kategori bersama dan membiarkan siswa memilih di antara mereka (misalnya, Sistem Operasi, Bahasa Pemrograman, dan Rekayasa Perangkat Lunak digabungkan ke dalam Perangkat lunak, dan siswa memilih jalur).
Anda dapat menemukan kursus yang diperlukan di situs web departemen CS untuk hampir semua sekolah, dan mereka harusnya memiliki beberapa versi.
sumber
Jika saya boleh, saya ingin menyarankan bergabung dengan github.com sebagai bagian dari proses belajar Anda.
Kemudian Anda dapat mencari-cari kode yang memiliki beberapa aplikasi dunia nyata yang Anda minati, mengkloningnya sendiri, bekerja dengannya, kode itu, dan mengenalinya, dan akhirnya mulai mengirimkan tambalan kembali ke proyek sumber , dan selanjutnya, kerjakan proyek sumber terbuka yang Anda minati.
Dan, tentu saja, Anda akan terbiasa dengan git, yang lebih baik.
sumber