
Hai semua! Nama saya YK, dan saya kini menjalankan CS Dojo, saluran YouTube pendidikan pengaturcaraan dengan 200,000+ pelanggan. Saya juga pernah menjadi pembangun perisian di Google.
Dua soalan yang paling biasa ditanyakan oleh penonton saya ialah:
"Apa perbezaan antara jurusan Sains Komputer dan Kejuruteraan Perisian?"Dan ...
"Perlukah saya memilih Sains Komputer atau Kejuruteraan Perisian jika saya ingin menjadi jurutera perisian?"Dalam artikel ini, saya akan menjawabnya dan memberikan analisis pantas saya sendiri mengenai jurusan ini.
Gambaran ringkas kedua-dua jurusan ini
- Sains Komputer adalah kajian bagaimana komputer berfungsi, kebanyakannya dari perspektif teori dan matematik.
- Anda harus memilih Sains Komputer jika anda menyukai matematik, logik, atau jika anda ingin memasuki bidang khusus dalam CS seperti kecerdasan buatan, pembelajaran mesin, keselamatan, atau grafik.
- Kejuruteraan Perisian adalah kajian bagaimana sistem perisian dibina, termasuk topik seperti pengurusan projek, jaminan kualiti, dan pengujian perisian.
- Anda harus memilih Kejuruteraan Perisian jika anda lebih berminat dengan pendekatan langsung, dan jika anda ingin mempelajari keseluruhan kitaran hidup bagaimana perisian dibina dan dikekalkan.
- Kedua-dua Sains Komputer dan Kejuruteraan Perisian mengajar asas-asas pengaturcaraan dan sains komputer, jadi anda boleh memilih salah satu untuk menjadi pembangun perisian.
Untuk memahami perbezaan antara jurusan Sains Komputer dan Kejuruteraan Perisian, mari kita lihat kurikulum masing-masing di University of Waterloo di Kanada.
Saya memilih University of Waterloo untuk ini kerana mempunyai salah satu program sains komputer terbaik di Amerika Utara.
Prospek pekerjaan
Mari kita bandingkan dahulu jenis pekerjaan dan magang yang anda dapat melalui setiap program.
Syukurlah, laman web University of Waterloo memberikan beberapa contoh.
Untuk setiap jurusan, berikut adalah beberapa tajuk alumni dan tempat kerjanya:
Sains Komputer
- Pembangun Web / Arkitek, Kumpulan Steele
- Pengaturcara, Harry Rosen Inc.
- Pembangun Mudah Alih / Awan, Clearbridge Associates Limited
- Kejuruteraan Perisian, General Dynamics Canada
- Kejuruteraan Pembangunan Perisian, Microsoft
- Jurutera Agile, Makmal Penting
- Penganalisis Perniagaan, Canadian Tire Corporation
- Peguambela Pembangun, Google
- Pengurus Produk, Dropbox
Kejuruteraan perisian
- Pembangun Perisian, Tagged Inc.
- Pembangun Perisian, IBM Kanada
- Pengurus Perisian, Arius Software Corporation
- Jurutera Perisian, VistaPrint USA
- Jurutera Perisian, Harris Corporation
- Pembangun Perisian, Accenture Inc.
- Pengurus Produk Teknikal - Reka Bentuk & Pembangunan Perisian, NexJ Systems Inc.
- Perunding, Penyelesaian Kewangan PureFacts
- Perunding Pelaksanaan, Hasrat2Pelajari
Seperti yang anda lihat, tidak ada perbezaan besar antara jenis pekerjaan yang anda dapat.
Lulusan pekerjaan yang paling biasa diperoleh setelah memperoleh ijazah Sains Komputer atau Kejuruteraan Perisian adalah Pembangun Perisian atau Jurutera Perisian.
Terdapat juga pilihan lain yang berkaitan, seperti Pengurus Produk, Penganalisis QA, dan Perunding Teknologi. Pilihan anda akan bergantung pada set kemahiran khusus anda.
Kursus tahun pertama:
Sekarang, mari kita lihat kursus yang diperlukan setiap program. Mari kita bandingkan beberapa kursus yang perlu anda ikuti pada tahun pertama anda.
Sains Komputer
- CS 135 - Merancang Program Berfungsi
- CS 136 - Reka Bentuk Algoritma dan Pengabaian Data
- MATH 135 - Aljabar
- MATH 136 - Aljabar Linear 1
- MATH 137 - Kalkulus 1
- MATH 138 - Kalkulus 2
- Ditambah dengan beberapa pilihan
Kejuruteraan perisian
- CS 137 - Prinsip Pengaturcaraan
- CS 138 - Pengabstrakan dan Pelaksanaan Data
- MATH 115 - Aljabar Linear untuk Kejuruteraan
- MATH 117 - Kalkulus 1 untuk Kejuruteraan
- MATH 119 - Kalkulus 2 untuk Kejuruteraan
- MATH 135 - Aljabar untuk Kepujian Matematik
- ECE 105 - Fizik Kejuruteraan Elektrik 1
- ECE 106 - Elektrik dan Magnetisme
- ECE 124 - Litar dan Sistem Digital
- ECE 140 - Litar Linear
- SE 101 - Kaedah Kejuruteraan Perisian
Seperti yang anda lihat, kursus tahun pertama juga serupa. Mereka berdua merangkumi beberapa kursus sains komputer asas, dan beberapa kursus matematik dalam aljabar linear dan kalkulus.
Satu-satunya perbezaan utama ialah Kejuruteraan Perisian mempunyai komponen fizik dan kejuruteraan elektrik tambahan, sementara Sains Komputer mempunyai beberapa pilihan.
Kursus selepas tahun pertama:
Bagaimana dengan kursus wajib dan elektif selepas tahun pertama? Mari kita lihat beberapa contoh di sini:
Sains Komputer:
- MATH 239 Pengenalan Kombinasi
- STAT 230 Kebarangkalian
- Statistik STAT 231
- CS 240 Struktur Data dan Pengurusan Data
- CS 241 Asas Program Berurutan
- CS 245 Logik dan Pengiraan
- CS 246 Pembangunan Perisian Berorientasikan Objek <- tidak diperlukan untuk jurusan Kejuruteraan Perisian
- CS 251 Organisasi dan Reka Bentuk Komputer
- Algoritma CS 341
- Sistem Operasi CS 350
- Tambahan, beberapa elektif Sains Komputer
Kejuruteraan perisian:
- CHE 102 Kimia untuk Jurutera
- Komputer Digital ECE 222 (termasuk bahasa pemasangan)
- Rangkaian Komputer ECE 358
- MATH 213 Matematik Lanjutan untuk Jurutera Perisian
- MATH 239 Pengenalan Kombinasi
- STAT 206 Statistik untuk Kejuruteraan Perisian
- MSCI 261 Ekonomi Kejuruteraan: Pengurusan Kewangan untuk Jurutera
- CS 241 Asas Program Berurutan
- CS 240 Struktur Data dan Pengurusan Data
- Prinsip Kejuruteraan Perisian CS 247 <- tidak diperlukan untuk jurusan Sains Komputer
- Algoritma CS 341
- Antaramuka Pengguna CS 349 <- tidak diperlukan untuk jurusan Sains Komputer
- CS 343 Pengaturcaraan Serentak dan Selari <- tidak diperlukan untuk jurusan Sains Komputer
- CS 348 Pengenalan Pengurusan Pangkalan Data
- SE 212 Logik dan Pengiraan
- SE 350 Sistem Operasi
- Ujian Perisian dan Jaminan Kualiti SE 465
- Reka Bentuk dan Senibina Perisian SE 464
- Spesifikasi dan Analisis Keperluan Perisian SE 463
- Projek Reka Bentuk SE 490
- Tambahan, beberapa pilihan sains komputer dan kejuruteraan elektrik
Saya telah memberi anda banyak maklumat untuk dicerna di sini. Tetapi inilah ringkasan saya:
Untuk keperluan matematik dan statistik, Sains Komputer dan Kejuruteraan Perisian hampir sama. Mereka merangkumi kombinasi, kebarangkalian dan statistik.
Keperluan sains komputer teras juga serupa, merangkumi algoritma, struktur data, dan sistem operasi.
Perbezaan utama adalah:
- Kejuruteraan Perisian mempunyai lebih banyak keperluan dalam asas kejuruteraan elektrik dan asas perisian, seperti ujian perisian, reka bentuk, dan spesifikasi keperluan perisian.
- Sains Komputer membolehkan lebih banyak pilihan dalam kursus sains komputer peringkat tinggi. Anda boleh memilih dari pelbagai topik seperti keselamatan, asas kejuruteraan perisian, visi komputer, pembelajaran mesin, dan pengurusan pangkalan data.
Jadi, jurusan mana yang harus anda pilih?
Saya rasa ia bergantung pada pilihan anda. Ringkasnya:
- Anda harus memilih Sains Komputer jika anda menyukai matematik, logik, atau jika anda ingin memasuki bidang khusus dalam CS seperti kecerdasan buatan, pembelajaran mesin, keselamatan atau grafik.
- Anda harus memilih Kejuruteraan Perisian jika anda lebih berminat dengan pendekatan langsung, dan jika anda ingin mengetahui keseluruhan kitaran hidup bagaimana perisian dibina dan dikekalkan.
Tetapi tunggu - yang mana kemudian? Jurusan mana yang lebih baik jika anda mahu menjadi jurutera perisian?
Inilah pendapat saya. Di universiti tertentu (University of Waterloo), dengan syarat keperluan program ini, Sains Komputer adalah jurusan yang lebih baik jika anda ingin menjadi jurutera perisian.
Hanya untuk kesederhanaan, anggap anda berharap dapat memperoleh pekerjaan dengan gaji tertinggi (~ $ 100,000 USD / tahun) sebagai jurutera perisian di Amerika Utara. Pekerjaan ini biasanya ada di syarikat perisian besar (kira-kira Microsoft, Google, Amazon, dll.) Atau di syarikat bertumbuh tinggi, sederhana (fikir Dropbox, Lyft, Snapchat, Pinterest, dll.).
Biasanya, apa yang mereka cari dalam calon jurutera perisian adalah kemampuan untuk menulis kod padat dan membina projek yang menarik, serta asas sains komputer termasuk struktur data dan algoritma.
Saya rasa cara terbaik untuk mengembangkan kemahiran ini adalah dengan mempelajari asas sains komputer dengan cepat, dan meluangkan masa anda sendiri untuk berlatih menyelesaikan masalah dan menulis kod.
Berdasarkan kurikulum Kejuruteraan Perisian dan berdasarkan bagaimana pelajar kejuruteraan sibuk pada umumnya, saya fikir akan lebih sukar untuk melakukan ini dengan Kejuruteraan Perisian daripada dengan Sains Komputer.
Manfaat lain dari program Sains Komputer ini ialah membolehkan lebih banyak pilihan sains komputer. Ini bagus juga kerana bergantung pada permintaan di pasaran pekerjaan, anda dapat menyesuaikan kursus anda. Contohnya, jika pengembangan aplikasi mudah alih diminati, anda dapat mempelajarinya. Sekiranya pengkomputeran selari diminati, anda boleh memfokuskannya.
Saya pasti ada beberapa faedah untuk mempelajari asas-asas kejuruteraan perisian (pengurusan projek, reka bentuk, ujian, dll.). Tetapi secara peribadi saya lebih suka mengambil fleksibiliti terhadap set kemahiran yang telah ditentukan. Itulah sebabnya saya fikir Sains Komputer adalah jurusan yang lebih baik untuk menjadi jurutera perisian dengan kurikulum tertentu ini.
Sudah tentu, itu hanya pendapat saya, dan ini hanya satu universiti tertentu. Saya ingin mendengar pendapat anda dan bagaimana pengalaman anda sekiranya anda mengambil jurusan Sains Komputer atau Kejuruteraan Perisian. Tolong beritahu saya dalam komen di bawah.
Beberapa nota
Catatan 1: Universiti yang berbeza mempunyai syarat yang berbeza untuk kedua-dua jurusan ini. Artikel ini semestinya merupakan titik permulaan yang baik, tetapi anda masih harus melihat syarat program di universiti yang anda berminat untuk mengikuti.
Catatan 2: Beberapa universiti bahkan tidak mempunyai jurusan Kejuruteraan Perisian. Sebagai contoh, University of British Columbia di Vancouver mempunyai ijazah Sains Komputer dan Kejuruteraan Komputer, tetapi bukan Kejuruteraan Perisian. Tetapi mereka mempunyai kepekatan kejuruteraan perisian dalam program Sains Komputer mereka, dan juga dalam Kejuruteraan Komputer.
Sekiranya universiti yang anda minati tidak mempunyai jurusan Kejuruteraan Perisian, saya akan menggunakan Sains Komputer sekiranya anda ingin menjadi pembangun perisian. Kejuruteraan Komputer lebih tertumpu pada perkakasan daripada Sains Komputer atau Kejuruteraan Perisian, jadi ia kurang berkaitan langsung dengan tugas pembangun perisian biasa.
Dan inilah sumber utama yang saya gunakan:
- Sains Komputer di Waterloo
- Kejuruteraan Perisian di Waterloo
Terima kasih kerana membaca, dan semoga berjaya memilih universiti dan jurusan anda! ?