Ilmu komputer untuk programmer

8

Saya seorang programmer otodidak dan telah mengkode selama 8 tahun. Karena pengalaman ini, saya sudah sangat akrab dengan prinsip-prinsip pemrograman (seperti if-pernyataan, kelas, polimorfisme, dll.).

Namun, saya tidak pernah belajar "ilmu komputer," hanya pemrograman. Apa sajakah sumber daya yang baik bagi seseorang yang berada dalam posisi saya untuk belajar sendiri ilmu komputer - yaitu, sumber daya yang bergerak cepat dan menganggap pengetahuan pemrograman dasar?

Shivam Sarodia
sumber
dikumpulkan std / cs ref
vzn
Maka Anda telah datang ke tempat yang tepat.
SDsolar
Maka Anda telah datang ke tempat yang tepat.
SDsolar

Jawaban:

11

Ilmu Komputer adalah disiplin beragam - dan Algoritma dan Struktur Data adalah bagian penting dari itu. Anda dapat mencoba kursus video gratis, seperti Algoritma, Bagian 1, dari Universitas Princeton - sekarang sedang berjalan.

Algoritma kursus video gratis yang luar biasa lainnya : Desain dan Analisis, Bagian 1, dari Stanford baru saja selesai - semoga akan terulang di masa depan. Bagian 2 dari kursus ini akan mulai hari Senin ini.

HEKTO
sumber
BAIK. Saya melakukan pencarian di internet, dan sepertinya kelas algoritma umum persis seperti yang saya cari.
Shivam Sarodia
9

Nah, ini jawaban pertama saya di sini dan, juga, saya kurang berpengalaman dari Anda. Jadi, anggap itu jawaban pemula, yang mungkin tidak relevan bagi Anda atau orang lain. Tapi, saya akan mencoba mempertahankan nilai pertanyaan dengan jawaban saya!

Yah, pertama-tama mari kita bahas (hanya garis besar) domain ilmu komputer, atau siklus hidup yang terlibat dalam pembelajaran CS. Mungkin, saya mungkin kehilangan beberapa dari mereka. Juga, mungkin ada ambiguitas tentang posisi mereka. Tapi, itu berlaku sebagai: -

  1. Dasar Komputer (Pengerjaan Umum komputer) dan pengantar komputer
  2. Bahasa pemrograman dan penggunaannya untuk memecahkan masalah kehidupan nyata menggunakan bantuan komputer
  3. Variasi bahasa pemrograman (fungsional, berorientasi objek, prosedural) dan prinsip-prinsip yang berbeda
  4. Struktur dan Algoritma Data // salah satu bagian terpenting dan tulang punggung CS
  5. Yayasan Sistem Komputer --- Matematika Terpisah, beberapa bagian dari Digital Electronics
  6. Rekayasa Perangkat Lunak // sekali lagi salah satu bagian terpenting dan tulang punggung CS
  7. Sistem Operasi --- subjek favorit saya di cabang CS, dan juga yang paling penting, cabang inti dari CS, setidaknya seluruh CS berjalan dalam hal ini, setidaknya. Anda memerlukan mesin untuk menjalankan sesuatu, berdasarkan bahkan pada pemodelan
  8. Arsitektur Komputer --- lagi-lagi salah satu mata pelajaran penting untuk mengetahui fungsi dasar kerja komputer
  9. Database bernilai setiap pengakuan! Penemuan luar biasa.
  10. Jaringan Komputer --- bagian CS yang sangat indah yang terkait dengan jaringan (koneksi kehidupan nyata)
  11. Teori Komputasi, Automata, Kompiler --- subjek favorit saya yang ke-2, semuanya dalam satu bagian yang menjelaskan perubahan status dan pembentukan serta pengoperasian bahasa.
  12. Penambangan Data & Pembelajaran Mesin --- Bidang Ilmu Komputer yang paling progresif saat ini dan pada kenyataannya benar-benar salah satu yang paling informatif
  13. Intelegensi Buatan & Jaringan Saraf Tiruan & Logika Fuzzy --- untuk tidak mengatakan apa-apa, simulasi kehidupan nyata terbaik

Sekarang, kembali ke pertanyaan. Saya pikir Anda harus memberikan setiap bagian kesempatan untuk masuk lebih dalam dan mencoba menemukan bidang yang Anda minati. Seseorang perlu beberapa tahun untuk memutuskan bidang mana yang paling cocok untuknya.

Anda tidak boleh langsung melompat ke bidang apa pun yang hanya melibatkan bagian pemrograman !!! Bahasa Pemrograman bukan "yang" sepadan dengan apa yang dibingkai, bagian yang paling penting adalah pemodelan dasar, fungsi dan generasi ide dan teori baru yang meningkatkan bidang CS. Jadi, seperti saya, Anda harus mencoba setiap bidang sekaligus, katakan selama seminggu dan melihat Anda benar-benar tertarik kepada mereka! Ini pertama-tama akan memberi Anda subjek untuk dibawa pergi!

Sekarang, datang ke sumber daya online. Ada banyak untuk dilihat. Anda akan menemukan banyak tutorial, video, dan kuliah yang tersedia saat ini di internet.

  1. www.coursera.org
  2. www.nptel.ac.in
  3. www.khanacademy.org

dan seterusnya.

Cobalah untuk menggunakan ini lebih sering untuk mempelajari dasar-dasar CS. Selain itu, Anda selalu memiliki mesin pencari dengan sekali klik untuk membantu Anda memberikan topik yang Anda hadapi kesulitan.

Am_I_Bantuan
sumber
2

Sebagai seorang programmer, Anda seharusnya mengetahui hal-hal berikut sesuai dengan Ilmu Komputer dasar:

  1. Prinsip Pemrograman Dasar
  2. Struktur data
  3. Metodologi Rekayasa Perangkat Lunak
  4. Teknik Pemrograman yang Berbeda (itu tergantung pada Algoritma)
  5. Pengetahuan Dasar tentang Pengujian kode

Anda bisa mendapatkan kursus ini melalui MOOC .

Coursera menyediakan kursus yang berbeda dengan sumber daya yang bagus, jika mau, Anda dapat mendaftar di sana.

Ya Shk
sumber
Anda sepertinya memiliki pertanyaan terbalik. Itu tidak menanyakan aspek ilmu komputer apa yang relevan bagi programmer; itu bertanya di mana seorang programmer dapat menemukan sumber daya untuk belajar tentang ilmu komputer.
David Richerby
-1

Kursus lain yang saya pelajari (dan saya pikir itu penting):

  1. Pola desain (seperti Singleton, Facade, Factory .etc)
  2. Struktur Diskrit

Kompleksitas asimptotik juga merupakan topik yang sangat penting dalam CS. Saya akan merekomendasikan "Pengantar Algoritma" sebagai buku referensi yang bagus untuk struktur Data dan Algoritma. Anda kemudian dapat berlatih di Project Euler . Selain itu, MIT memiliki program MIT Open CourseWare di YouTube. Saya menemukan kursus struktur data mereka sangat membantu.

Hal lain yang bisa saya sarankan adalah membaca buku pelajaran CS Universitas apa saja untuk mendapatkan topik dan melihat mana yang menarik, dan mempelajarinya.

Xaero
sumber